127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
128
129
129
128
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
129
124
127
130
129
127
126
128
127
128
126
128
127
127
127
126
128
127
127
127
127
127
127
128
126
126
128
128
125
127
128
126
128
127
127
128
129
127
126
128
127
126
127
127
127
126
128
127
126
127
128
126
126
128
127
127
127
126
126
127
127
127
126
127
128
128
127
130
129
127
129
129
129
129
127
129
128
130
128
126
130
126
128
127
127
127
127
128
124
126
127
125
127
124
127
126
128
126
126
128
126
129
125
128
129
127
127
125
129
127
127
127
127
127
128
129
126
127
131
124
128
130
127
129
128
127
129
127
129
130
125
128
130
128
124
128
132
125
125
129
124
128
130
122
131
126
129
120
127
130
126
128
122
126
128
130
125
126
127
129
127
127
128
128
128
126
125
132
126
122
130
127
125
127
129
125
125
128
127
126
127
127
128
129
127
124
127
126
125
123
123
125
127
127
126
131
130
130
131
129
133
128
126
133
131
125
127
127
130
127
127
131
140
119
124
124
115
128
128
123
131
126
130
128
127
125
125
134
126
124
125
123
123
131
123
119
123
121
124
128
130
130
131
134
135
128
139
132
125
135
126
128
130
135
123
130
127
127
124
122
130
126
126
129
127
125
124
123
129
119
126
129
118
127
124
123
123
127
125
121
124
127
128
124
133
127
126
135
124
142
129
136
130
124
131
127
128
134
132
132
127
121
131
127
124
126
120
121
128
128
129
127
126
135
136
130
122
124
119
120
122
115
115
120
120
115
121
123
125
127
132
124
132
139
133
128
135
128
126
143
137
132
136
133
138
136
132
135
131
132
134
133
127
131
127
127
123
122
128
120
125
126
122
134
129
127
121
125
120
126
123
118
121
123
122
127
126
122
124
127
126
126
125
126
130
133
133
134
136
129
126
127
126
124
127
124
120
127
129
135
132
129
142
137
121
126
132
122
126
121
124
117
125
122
118
123
121
125
121
126
128
127
128
134
134
120
129
121
131
133
125
133
130
127
138
135
131
129
132
123
128
129
128
122
123
119
135
128
124
116
125
117
114
126
114
116
127
130
132
136
136
132
137
131
133
128
123
122
120
121
123
122
129
125
129
133
127
133
132
131
126
132
128
135
130
133
132
130
131
127
136
134
129
131
126
133
128
123
130
127
133
143
128
141
120
128
140
124
125
127
121
122
118
118
115
117
120
131
120
115
133
134
142
124
130
126
130
125
132
119
120
132
126
126
123
129
129
130
122
121
113
111
117
122
125
124
139
139
128
136
135
130
131
125
127
125
123
128
131
124
130
122
122
123
129
129
126
125
133
131
130
132
129
125
128
136
129
130
132
134
138
133
133
124
124
118
121
119
120
130
127
131
129
132
132
132
124
128
128
130
116
122
126
126
117
126
122
122
118
131
118
125
132
143
125
122
123
135
127
123
123
122
122
126
132
127
123
125
125
121
123
127
129
130
133
135
136
135
136
133
133
126
124
126
125
131
137
131
129
127
135
131
125
121
119
121
124
125
121
121
122
126
123
123
127
127
128
127
132
128
129
131
125
125
124
119
120
126
133
135
132
130
132
137
137
131
129
127
126
129
130
127
127
131
129
129
128
127
127
125
124
124
125
125
126
131
129
126
125
125
124
124
132
128
124
127
127
128
127
129
127
127
125
129
129
125
126
126
126
125
126
127
126
124
126
126
128
128
131
132
133
131
126
125
124
126
127
125
121
124
127
127
131
128
125
128
127
126
126
126
126
127
127
126
126
127
125
127
125
125
126
126
128
130
129
128
126
126
127
128
127
130
130
129
132
133
129
128
128
126
127
126
125
126
128
127
129
128
127
127
127
125
123
124
122
124
127
127
129
126
126
127
126
126
128
125
124
126
128
127
126
127
127
126
128
127
126
128
128
128
130
128
126
126
127
124
126
125
126
127
128
129
127
127
129
128
127
127
128
127
126
130
130
128
129
129
131
129
129
129
128
127
128
129
128
128
128
130
129
127
129
128
127
126
126
126
126
128
128
128
127
126
128
129
127
129
126
126
127
127
125
127
126
125
125
126
129
127
125
127
126
127
128
126
127
126
126
124
126
127
126
129
128
128
128
128
129
129
129
127
127
127
126
127
129
130
128
128
126
128
129
127
127
127
126
126
128
126
126
128
127
126
126
126
127
127
128
128
126
127
126
127
126
126
129
127
130
129
128
128
128
128
128
126
126
126
128
127
130
129
126
128
126
127
127
126
126
125
125
125
127
127
127
129
128
126
127
127
127
128
128
127
128
126
126
126
126
127
127
128
127
126
128
126
126
125
125
127
126
124
125
126
126
127
128
126
126
128
128
128
128
126
129
131
130
130
129
128
130
129
129
129
128
128
128
128
128
128
128
126
126
126
128
128
127
127
128
128
127
126
125
126
126
127
126
126
127
128
127
127
128
126
126
125
126
125
126
126
127
128
127
129
129
127
126
128
127
128
127
126
126
127
129
129
129
127
127
127
126
127
129
127
126
126
126
126
126
127
126
126
127
127
126
127
127
127
128
128
128
125
126
125
127
129
128
128
129
127
129
128
129
127
128
127
128
128
128
127
127
127
128
128
128
127
127
128
126
129
126
127
128
127
129
129
129
129
128
128
128
128
127
127
125
126
126
127
128
127
127
127
128
127
127
127
127
127
128
127
128
127
127
128
128
128
129
128
128
127
126
128
125
125
127
127
127
129
127
127
125
127
128
126
127
126
127
126
126
126
126
126
126
129
126
126
128
129
126
129
128
128
128
128
127
127
128
129
128
129
128
129
129
127
127
125
125
126
127
126
127
128
130
127
129
128
127
127
126
127
126
126
128
127
128
127
127
126
128
128
128
128
127
127
128
128
128
129
128
128
127
128
128
128
127
128
129
128
127
127
126
124
125
125
125
127
127
128
127
127
128
127
127
126
126
127
125
126
127
126
126
127
127
127
126
128
126
127
129
127
128
127
129
128
128
128
128
127
128
129
130
128
128
127
126
128
128
128
128
128
129
130
129
129
128
128
128
126
126
126
127
128
127
127
126
127
128
126
126
126
126
126
126
127
127
126
127
127
127
127
127
127
127
128
127
127
127
128
127
128
126
127
126
128
128
128
127
128
128
129
128
126
126
127
126
127
128
127
127
127
128
128
127
127
127
126
126
127
128
127
127
128
128
127
128
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
127
128
127
128
127
127
127
126
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
126
127
127
127
126
127
127
127
127
128
127
127
127
127
128
127
127
128
127
127
127
128
127
128
128
127
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
128
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
128
128
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
127
126
126
127
126
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
130
129
131
121
127
131
125
125
131
128
129
130
127
128
131
127
134
131
123
126
130
111
126
133
127
135
129
133
130
122
134
131
126
118
125
121
130
130
120
120
119
127
126
129
128
123
125
126
125
126
126
126
124
126
123
124
127
132
119
108
123
132
133
110
119
127
138
121
120
123
135
130
119
117
133
123
120
127
127
120
139
121
132
136
132
132
134
127
116
124
135
128
125
116
136
134
126
141
135
127
138
134
138
144
132
132
135
133
130
137
122
138
130
121
129
136
124
126
124
129
119
130
129
125
126
125
124
134
127
125
125
121
122
118
113
107
123
125
127
128
135
134
141
138
137
135
126
121
122
133
119
123
121
126
129
126
126
125
123
124
130
126
125
130
126
123
127
125
118
116
118
128
124
135
143
130
127
134
126
120
126
102
121
137
111
130
130
119
129
125
116
113
138
117
117
127
122
132
135
134
130
139
129
142
135
126
128
127
116
135
123
122
116
118
127
128
132
131
136
132
132
133
134
137
134
126
129
132
133
130
131
122
128
132
128
121
126
125
132
131
129
124
134
136
131
127
127
147
139
131
130
125
118
142
122
115
116
119
124
131
126
132
130
132
128
128
125
125
122
126
125
120
126
129
130
117
125
131
123
120
118
126
125
126
125
127
128
134
130
127
125
129
128
128
123
128
129
127
129
131
131
127
130
130
128
133
128
125
129
128
127
123
123
125
124
126
126
127
125
127
131
132
128
125
124
125
120
117
121
122
119
122
122
129
130
128
128
131
125
118
125
126
119
123
127
119
133
130
127
137
126
128
130
122
131
128
122
129
128
131
131
130
131
132
125
127
134
128
131
127
124
127
124
125
123
120
125
123
125
128
128
127
128
129
129
129
127
127
129
127
132
127
128
133
133
129
130
133
127
126
128
127
125
127
127
130
129
131
131
131
133
131
129
127
126
127
124
128
124
128
128
126
128
129
128
128
125
125
125
129
123
122
128
126
125
127
128
129
127
128
129
130
129
128
129
128
130
127
126
128
129
126
127
127
128
127
129
128
126
126
125
127
128
127
126
127
127
129
128
127
125
126
126
126
124
124
126
126
127
126
127
127
127
126
127
127
126
124
125
126
124
126
127
124
129
128
127
126
128
126
126
126
127
126
125
126
126
127
126
128
128
125
126
126
125
126
126
126
125
126
125
130
127
126
127
127
128
127
129
129
129
128
128
128
128
127
129
128
129
130
130
129
131
129
129
127
129
127
126
128
128
128
128
127
129
127
126
127
125
126
126
127
126
127
127
127
128
127
128
129
125
128
129
128
128
126
129
127
126
127
127
128
128
128
128
129
130
126
127
128
126
127
127
126
126
128
126
127
130
129
128
126
127
127
127
129
127
127
127
127
128
126
128
126
125
126
126
127
127
127
126
127
127
126
126
126
127
127
128
128
127
128
128
127
127
126
127
127
126
127
127
129
128
128
127
127
128
127
127
127
126
127
127
127
126
127
128
127
127
127
126
127
127
127
127
127
128
128
128
128
129
128
128
128
128
128
129
126
126
127
127
126
127
128
126
126
127
128
128
126
127
127
127
127
126
127
128
127
126
128
129
129
128
126
128
128
127
128
128
129
128
128
128
129
127
127
128
127
126
128
126
128
128
126
125
126
129
127
128
126
127
127
128
127
126
126
126
126
126
127
126
127
126
124
128
130
129
126
129
128
130
126
127
127
128
127
128
126
127
127
126
128
128
127
130
128
128
128
128
129
127
129
127
125
128
127
126
126
125
127
126
126
129
126
126
128
128
127
128
126
126
127
127
127
128
127
128
127
126
127
128
127
126
125
127
127
128
128
126
127
128
127
129
128
126
128
127
126
126
125
126
127
126
128
128
129
129
128
129
128
127
126
126
127
126
126
126
126
129
126
128
127
127
126
129
129
127
126
128
128
127
127
126
125
126
127
128
129
129
127
127
126
129
127
126
126
124
126
128
125
129
129
127
128
126
127
126
128
124
126
127
126
127
128
128
127
129
127
129
128
128
127
126
126
128
127
127
124
126
127
127
128
128
129
128
127
128
127
129
128
126
127
127
128
128
127
126
128
128
128
127
126
127
128
127
127
126
128
129
128
126
126
130
129
128
128
126
126
130
126
126
126
126
127
128
128
128
128
129
127
128
126
128
126
126
127
127
126
128
128
127
126
128
127
126
127
126
127
127
127
127
128
128
128
128
128
127
127
128
127
127
128
128
127
129
128
127
128
128
128
128
127
128
127
128
127
127
127
127
127
126
127
127
127
128
128
127
127
127
127
126
126
125
126
127
125
127
128
128
128
128
128
127
127
126
128
127
126
127
127
125
128
127
127
128
128
128
127
127
127
127
127
128
128
128
128
127
128
128
126
126
128
127
127
127
126
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
128
127
127
128
126
128
129
127
128
129
128
128
128
128
127
127
127
128
128
127
128
128
127
128
127
127
127
126
126
127
127
127
127
127
127
128
127
127
127
126
127
126
126
127
127
127
128
127
128
128
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
126
128
127
127
127
127
126
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
126
127
127
127
127
127
126
127
127
127
126
127
127
127
127
127
127
127
128
127
127
128
128
127
128
128
127
127
128
127
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
127
127
128
128
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
128
129
129
129
129
128
129
128
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
128
128
129
129
128
128
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
127
127
128
127
128
128
128
127
128
128
128
128
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
128
126
127
124
128
127
127
126
127
127
127
127
126
128
125
126
127
129
125
128
125
128
126
126
127
126
126
129
127
123
128
129
126
129
128
126
127
130
124
129
127
129
130
126
126
128
126
128
127
127
128
128
128
128
129
128
126
129
129
127
128
128
129
130
128
129
127
127
129
128
128
127
129
127
128
127
128
124
128
128
128
127
128
128
128
130
128
125
129
126
128
128
127
125
129
127
125
129
128
124
124
130
126
128
124
128
126
126
128
126
126
125
126
127
129
125
128
124
127
124
128
128
126
124
127
127
126
126
124
124
131
126
130
125
125
128
126
127
126
126
127
128
126
127
127
125
128
125
129
123
129
127
127
124
129
125
129
127
126
131
127
127
128
125
128
126
127
129
126
128
127
127
128
125
131
126
129
128
127
129
126
128
129
128
128
131
126
129
131
126
127
130
127
129
128
127
130
130
126
127
130
127
128
129
127
128
128
126
129
128
128
126
129
127
126
127
128
130
127
129
126
127
129
126
129
128
127
127
126
128
126
127
127
127
128
127
127
125
128
127
127
126
127
129
123
128
126
127
125
126
128
126
127
127
126
126
127
127
128
125
126
128
126
127
127
126
127
127
128
125
128
127
127
125
127
128
126
128
128
127
129
128
125
128
128
128
129
128
126
126
128
126
128
127
126
129
127
127
128
128
125
127
128
127
128
126
127
128
126
127
129
126
127
126
128
127
127
128
127
127
127
128
128
128
126
128
128
127
128
127
127
129
126
127
129
127
128
127
128
126
128
126
126
128
127
126
127
128
126
127
128
128
127
126
128
127
127
128
128
128
127
128
128
127
128
127
128
128
127
129
126
128
127
127
127
127
128
126
128
128
128
129
126
128
128
127
127
128
128
129
127
127
126
129
126
128
128
127
128
127
129
127
128
127
128
126
127
127
127
127
129
127
127
127
127
127
128
128
127
127
128
126
128
127
128
127
127
128
127
127
127
127
128
127
127
127
126
128
127
127
127
126
128
126
127
127
128
127
126
128
127
126
126
127
127
127
127
128
127
126
127
128
126
127
127
127
126
127
127
127
126
127
127
127
126
127
127
127
127
127
127
127
127
127
128
126
126
127
127
127
127
127
127
126
127
127
126
127
127
127
127
127
128
126
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
128
127
127
127
128
128
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
128
127
128
127
127
127
128
127
127
128
127
128
127
128
127
127
128
127
127
128
127
127
127
127
128
127
127
126
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
128
127
126
127
127
127
127
127
126
127
127
128
126
127
127
127
127
127
127
128
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
128
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
127
127
127
127
128
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
128
127
128
127
128
127
127
128
127
128
127
127
127
127
127
127
127
127
128
127
128
127
128
127
128
127
127
128
127
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
126
127
127
125
126
126
127
126
125
127
126
125
124
127
125
127
122
126
126
124
123
128
124
126
124
123
126
126
126
126
125
127
125
126
122
128
124
128
127
127
122
130
122
129
129
128
127
128
129
127
129
127
126
130
127
129
130
127
131
127
129
130
128
131
131
130
129
128
129
129
130
131
129
131
128
133
130
129
131
130
132
128
128
124
129
129
130
128
129
127
128
127
129
128
130
125
127
128
126
129
128
124
129
126
125
127
124
124
129
129
124
126
122
128
125
127
126
124
124
125
125
128
123
126
127
123
125
124
125
128
124
124
125
128
123
127
127
124
128
126
124
126
125
127
128
124
126
128
124
124
124
123
128
127
125
126
128
126
126
128
125
127
127
126
127
129
126
128
125
129
126
127
128
126
129
125
131
128
129
127
129
130
128
128
128
131
128
129
132
125
130
130
127
132
127
129
128
128
127
131
127
130
129
129
129
129
129
128
130
128
129
129
128
132
127
130
129
128
127
129
128
128
127
126
129
127
125
127
127
129
128
127
124
130
127
126
128
128
126
128
126
127
127
126
129
125
126
129
128
128
125
127
125
127
126
125
127
126
127
125
125
127
127
125
127
126
127
127
126
125
127
126
124
126
128
124
129
125
128
128
124
126
126
126
126
128
126
129
124
126
127
126
126
128
127
126
127
125
127
127
126
127
127
125
128
126
126
128
128
126
127
127
126
127
128
128
127
128
125
127
126
127
127
128
126
128
127
126
127
128
127
128
126
129
128
126
129
126
127
127
128
128
127
127
129
127
129
126
128
128
124
129
128
127
128
127
128
128
126
128
128
125
130
129
127
126
129
130
127
130
127
128
128
126
130
129
126
129
127
127
128
127
129
127
130
127
129
128
128
129
128
128
128
128
128
129
128
127
128
127
129
127
128
129
127
127
127
126
128
128
127
128
125
127
128
129
127
129
126
129
126
128
128
128
127
127
129
127
125
128
126
127
127
125
129
126
126
127
127
127
126
126
125
127
126
127
127
127
126
127
126
126
127
125
126
127
127
127
127
125
127
127
126
127
126
128
126
127
127
124
128
126
128
126
125
128
127
126
128
127
127
127
126
128
126
127
127
128
127
126
127
127
127
128
128
127
128
126
128
127
128
128
127
128
127
127
128
127
128
127
127
128
128
127
127
128
129
127
129
128
128
127
128
128
128
129
127
129
127
127
128
127
128
127
128
129
127
128
128
127
128
128
128
127
127
127
127
128
126
128
126
127
127
127
127
127
128
127
127
127
127
128
126
127
128
127
127
127
127
127
127
128
127
126
127
127
127
127
127
127
127
127
127
126
128
127
127
127
127
127
127
127
127
128
126
127
128
127
127
127
127
127
127
127
128
126
127
127
127
127
127
127
127
127
127
127
126
127
128
127
127
127
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
128
127
127
128
127
129
127
128
127
128
127
127
128
127
127
127
128
127
127
128
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
126
127
127
127
126
127
127
127
127
127
127
127
127
127
127
126
127
127
128
126
127
128
127
126
127
128
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
126
127
127
128
126
127
127
127
127
126
128
127
127
127
127
127
127
128
127
127
127
127
129
126
127
128
127
128
127
128
128
128
127
127
127
127
127
127
128
127
128
126
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
127
127
128
127
128
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
128
127
128
127
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
127
127
127
128
128
127
127
127
128
127
128
128
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
126
128
126
128
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
126
127
127
127
127
127
128
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
126
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
128
127
127
127
128
127
128
128
127
127
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
127
128
127
127
127
127
127
128
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
114
115
105
118
134
141
141
136
122
134
135
140
141
140
140
140
137
136
138
149
162
154
51
135
173
244
197
166
93
61
64
68
72
74
76
81
80
85
86
93
98
101
104
103
106
114
116
120
115
110
112
124
140
138
112
123
146
149
151
153
162
158
168
196
192
178
193
184
186
188
191
190
186
189
193
179
170
163
159
157
154
143
140
139
139
132
130
127
121
121
109
108
109
105
104
96
97
97
86
95
90
72
71
60
57
46
52
61
70
62
64
46
39
18
32
52
34
44
62
75
86
98
97
97
87
103
109
103
113
127
139
134
146
167
148
144
158
168
179
174
173
181
182
188
193
196
199
194
188
187
183
205
211
203
181
201
182
164
206
198
174
202
218
186
194
226
178
180
169
136
147
145
145
171
155
137
127
138
109
101
92
107
103
99
120
89
96
113
99
89
95
67
82
90
86
83
73
77
90
86
67
79
67
58
86
81
79
89
91
73
79
83
75
76
85
61
51
76
78
93
95
75
86
85
85
83
87
58
92
89
91
111
113
98
111
97
102
114
122
102
147
137
141
173
141
143
156
142
166
164
168
166
169
173
159
184
183
192
191
175
194
202
177
180
189
195
187
213
209
207
204
207
196
181
176
189
172
183
216
174
182
179
150
160
167
162
137
130
160
143
162
159
135
140
113
126
144
108
97
108
105
111
98
104
92
92
96
88
100
82
89
88
79
61
66
84
81
88
65
68
61
51
83
84
64
75
98
101
100
117
106
107
119
108
81
68
58
109
110
99
122
104
133
146
129
136
115
104
123
133
119
122
167
178
127
157
155
136
140
136
144
153
191
179
144
154
145
113
123
118
101
117
157
141
139
148
135
148
133
96
73
98
110
118
124
157
128
139
170
134
116
132
124
134
117
106
125
115
108
141
139
96
124
119
120
93
112
88
106
123
128
118
98
89
130
148
133
118
126
140
150
142
171
144
100
161
130
132
120
115
129
122
142
158
151
151
160
159
129
137
145
124
128
149
149
146
160
164
119
131
109
106
108
113
142
147
139
154
161
114
117
116
135
112
130
158
149
163
175
188
129
125
158
121
110
165
128
136
140
151
155
145
144
137
107
122
124
134
142
131
127
148
148
100
137
114
103
130
140
146
151
131
110
93
100
101
80
98
92
119
139
114
104
112
99
95
124
112
139
142
111
112
99
91
127
108
128
121
166
163
162
146
153
127
137
176
138
102
140
157
101
105
106
101
112
99
73
77
106
111
102
85
130
101
101
77
71
78
75
94
98
107
124
143
156
140
101
114
100
100
104
124
147
118
125
150
107
94
127
126
100
134
154
146
163
175
150
138
138
99
105
128
129
105
121
128
108
143
135
151
139
150
141
153
161
139
132
127
157
162
162
150
154
163
171
139
153
137
127
165
145
144
153
174
152
138
142
143
139
137
102
105
143
119
130
141
128
142
145
123
119
125
149
109
117
151
128
148
166
150
111
122
118
90
127
124
115
150
121
124
164
124
143
145
118
140
132
94
105
113
87
109
143
147
139
165
142
137
116
110
99
100
74
113
110
113
101
104
79
74
77
79
100
98
104
104
102
101
112
120
89
100
99
85
107
115
122
139
126
127
128
160
138
126
169
159
167
171
167
166
182
164
145
161
142
123
135
143
135
164
126
134
129
119
118
135
105
124
133
146
110
109
139
140
132
137
131
133
124
146
122
105
109
120
144
149
125
127
129
127
101
125
104
89
151
150
117
152
146
134
93
144
98
105
123
158
143
139
122
186
133
112
129
117
120
111
110
108
143
124
140
135
109
111
140
93
101
100
148
106
106
126
117
135
149
147
116
133
115
144
108
130
144
145
120
129
167
96
137
122
126
131
150
126
126
126
115
156
137
134
110
146
144
133
152
123
111
136
163
105
129
140
146
107
144
142
95
150
132
136
147
126
154
156
141
127
126
104
115
123
141
181
167
164
129
107
116
120
114
117
94
93
96
127
117
156
123
104
127
80
88
83
117
81
126
99
69
126
133
98
101
113
89
114
99
88
85
100
121
126
133
145
142
167
153
157
160
142
153
171
162
149
168
137
138
121
136
111
178
154
158
116
127
126
132
142
92
130
124
167
104
146
104
77
84
132
113
102
149
111
108
122
126
117
142
108
115
125
136
111
129
134
100
97
133
129
152
126
106
131
119
104
123
129
104
113
152
150
127
137
155
146
135
111
116
118
137
130
82
117
153
127
124
142
139
157
154
136
103
144
145
140
109
122
143
150
135
155
134
122
152
141
103
124
154
116
131
164
113
108
133
131
129
95
130
117
109
117
125
138
134
141
164
136
142
166
164
125
100
132
135
76
107
135
118
140
156
143
141
138
119
109
114
144
130
125
131
100
138
150
146
128
162
162
157
131
109
98
114
113
98
104
89
118
139
124
95
116
110
112
110
62
92
126
136
123
106
125
123
82
132
125
103
124
103
102
85
109
146
118
132
139
150
145
145
174
180
150
166
160
154
175
143
148
130
124
159
145
110
139
153
145
130
145
154
101
124
139
127
121
136
140
132
98
112
95
106
89
94
105
102
127
126
115
96
131
128
160
122
135
110
141
119
117
111
116
122
123
129
117
133
139
141
135
119
80
122
125
115
122
147
129
143
123
116
151
115
106
100
119
96
121
135
138
115
139
142
115
106
125
149
136
119
138
159
153
135
123
148
118
146
157
127
127
176
135
139
130
147
131
111
127
136
127
122
131
128
110
108
151
136
148
144
164
167
126
159
151
123
122
144
128
100
93
113
115
130
111
136
128
118
130
133
125
138
114
109
115
114
153
152
150
161
157
165
160
153
143
127
116
130
110
87
102
108
103
106
127
111
83
107
88
77
96
141
134
144
115
116
98
104
92
112
92
104
113
130
115
96
122
145
135
147
116
105
138
149
161
145
165
164
172
167
161
168
149
136
112
133
141
128
132
122
121
141
127
142
114
127
143
118
128
138
118
151
123
75
113
108
118
90
108
100
100
128
160
104
126
143
144
156
138
124
94
123
120
106
124
106
123
146
138
142
133
99
135
121
89
113
139
124
151
151
126
150
139
144
115
94
107
126
120
109
114
121
134
133
108
107
118
135
129
127
149
124
141
155
149
129
148
114
133
117
125
126
135
165
158
167
137
129
129
127
121
137
133
107
134
125
110
143
137
162
157
146
168
144
152
139
139
119
109
132
164
117
121
122
109
138
117
107
116
113
123
119
146
130
109
141
104
141
137
144
158
154
132
150
145
161
140
143
104
106
111
116
96
89
105
104
106
119
101
94
107
109
123
136
144
117
99
113
123
93
87
77
90
90
114
106
129
121
110
157
126
126
141
142
105
145
148
148
171
173
167
145
161
149
159
153
139
136
126
117
139
116
125
146
130
120
125
134
141
116
132
139
104
126
132
117
123
114
123
104
95
90
111
95
130
137
132
145
141
143
129
122
99
96
128
100
128
121
131
139
160
155
110
122
125
110
113
137
115
115
133
140
147
145
146
139
143
107
107
121
109
122
111
135
117
146
113
108
93
110
125
124
126
150
138
126
142
139
148
139
142
129
109
137
157
152
145
145
145
141
141
154
119
118
110
139
99
115
129
136
110
129
166
143
148
156
145
97
114
136
154
146
158
146
133
124
120
98
109
85
100
111
125
120
116
149
135
143
143
135
89
122
108
143
155
167
184
169
143
152
125
112
91
105
106
105
96
100
105
121
123
126
114
125
143
115
127
110
103
107
122
114
88
77
91
92
88
101
104
125
116
126
135
130
120
142
135
123
123
159
140
150
154
165
151
160
179
154
132
123
135
118
141
156
160
128
123
146
145
158
140
137
117
112
124
139
121
118
134
119
128
119
92
94
101
105
97
133
149
128
129
139
122
111
122
90
79
111
118
115
154
144
152
143
129
120
114
116
117
127
112
130
132
124
150
132
127
150
127
135
129
118
98
112
114
115
139
105
111
117
116
104
128
115
126
148
138
134
133
126
150
133
133
146
136
134
143
136
126
142
145
135
147
137
101
119
137
128
102
127
117
111
142
142
146
139
152
149
138
130
136
168
174
155
142
141
123
119
116
69
80
102
99
110
133
129
104
147
154
131
130
131
126
96
114
123
147
179
177
159
163
159
140
131
119
92
98
97
103
88
113
122
118
120
133
132
147
127
122
125
120
94
108
131
101
92
110
81
91
97
95
125
136
118
120
121
109
150
127
147
144
128
121
122
141
135
157
154
167
171
163
157
133
128
138
135
141
112
131
131
158
152
137
133
119
117
124
115
123
123
124
149
128
136
112
99
107
78
97
105
133
152
104
116
137
138
127
119
103
94
113
117
104
141
148
142
149
128
127
99
110
111
112
127
136
131
144
139
123
143
141
141
132
124
104
121
110
105
112
119
98
130
120
107
112
133
115
119
123
131
141
143
150
166
163
152
154
139
128
125
121
109
115
143
144
142
133
130
134
150
123
110
98
95
124
124
137
129
140
155
167
162
173
159
161
166
152
146
135
122
131
99
98
111
92
106
130
126
109
142
139
132
134
106
121
124
116
172
156
134
137
169
145
146
136
115
90
98
114
122
90
107
121
109
103
118
134
134
132
140
118
108
107
116
99
83
80
90
105
110
98
113
116
118
131
120
115
126
120
117
144
158
148
138
147
125
116
157
143
157
148
167
145
140
152
121
134
153
128
139
148
134
121
129
130
137
130
152
134
137
144
130
136
131
149
131
124
103
101
93
124
106
107
123
123
108
122
129
104
110
106
108
106
93
130
131
104
117
121
131
135
112
93
97
116
126
149
134
143
148
139
118
132
144
146
132
134
121
123
122
121
109
86
123
138
153
119
123
119
121
136
134
137
150
139
149
159
144
156
154
141
119
115
127
126
149
137
127
154
142
127
128
124
121
108
104
118
117
132
115
118
138
145
140
145
147
139
162
132
129
139
157
135
126
108
107
101
105
104
118
139
98
144
137
108
110
139
134
130
151
160
149
153
149
156
144
132
114
109
130
121
116
98
117
110
134
130
122
123
143
139
118
131
123
108
107
98
72
79
105
120
116
100
100
79
95
103
94
108
128
103
131
137
136
160
152
105
128
139
128
121
157
156
162
166
161
123
130
142
141
136
127
136
158
155
139
143
132
131
129
124
127
142
132
142
144
136
148
138
126
116
101
114
125
101
125
139
113
118
111
123
111
115
103
117
115
116
128
106
118
131
119
128
120
95
121
129
114
128
124
132
148
137
140
131
140
137
113
130
132
136
119
109
104
113
124
158
126
122
133
117
120
124
115
120
149
144
143
156
154
147
144
124
110
112
125
144
140
130
131
132
147
136
113
110
86
97
94
109
133
149
144
155
151
162
137
145
151
141
151
148
142
129
142
142
137
116
123
129
113
110
108
112
118
148
134
128
118
114
135
139
146
163
141
139
165
129
135
142
135
106
97
115
115
108
117
116
111
104
125
145
130
140
150
136
137
133
119
110
99
99
91
89
114
114
120
107
89
72
108
111
94
108
108
115
143
140
121
127
113
130
136
133
142
123
131
145
158
160
158
147
152
121
141
141
139
136
144
142
160
144
127
131
123
128
144
168
146
143
146
125
90
111
113
106
108
120
138
120
128
134
125
127
117
106
113
111
120
139
131
108
124
119
123
118
106
92
121
117
129
127
139
116
112
128
138
126
133
138
123
126
141
120
130
128
108
105
122
108
119
137
137
133
122
108
131
139
114
128
136
124
133
164
136
129
138
140
140
141
136
121
127
125
134
139
135
120
112
111
99
101
128
132
130
135
147
135
133
150
146
152
178
159
158
148
140
117
106
123
120
111
125
115
128
141
124
130
127
119
126
130
137
150
138
151
158
129
136
142
120
109
122
122
126
136
138
134
133
117
129
139
121
137
131
119
123
129
111
112
126
118
107
97
117
105
111
121
104
94
112
116
103
112
96
108
126
123
120
139
128
128
135
132
135
152
145
136
127
131
128
130
117
109
116
106
121
117
133
131
137
115
123
123
136
136
152
157
155
155
138
126
140
127
124
119
126
130
135
136
130
125
122
116
126
129
124
120
126
140
141
128
134
126
117
110
115
112
109
121
129
133
126
132
131
140
129
128
130
121
140
130
130
129
123
119
123
129
119
127
129
133
135
127
130
125
131
124
128
124
124
124
125
138
126
136
147
140
144
143
132
132
127
127
124
121
112
121
119
125
121
124
112
115
113
113
120
120
125
133
137
134
140
134
137
135
136
128
125
141
144
148
144
146
143
138
138
127
126
117
128
142
145
147
150
144
129
123
127
120
122
117
127
122
129
128
128
130
127
123
128
118
116
109
108
115
112
109
116
117
117
126
129
122
117
124
127
129
124
125
127
125
126
125
123
112
123
114
117
121
139
131
139
132
131
140
138
133
127
126
130
134
138
136
133
127
126
121
113
119
122
123
112
132
119
129
128
133
118
125
132
128
136
123
130
124
128
127
132
129
126
125
122
123
126
130
127
123
121
129
122
120
110
114
118
120
119
126
128
130
140
129
135
138
141
140
143
132
141
137
135
135
133
131
137
144
135
137
137
125
136
132
132
133
133
131
130
125
123
126
131
127
129
129
133
133
127
126
122
120
119
122
123
118
129
121
126
123
118
120
118
117
110
124
116
109
121
121
118
121
123
122
125
127
125
128
127
130
137
139
135
125
136
125
130
137
133
130
138
135
130
131
126
128
131
129
129
134
126
125
132
122
130
129
129
127
130
127
132
128
135
127
130
125
127
118
127
116
127
119
119
123
124
119
122
121
119
131
125
119
127
121
119
128
124
128
133
121
127
129
127
131
126
126
127
125
129
130
125
126
129
122
129
133
128
138
127
131
133
131
123
133
122
127
138
127
132
139
132
129
137
125
130
134
129
135
135
132
134
137
123
137
127
124
131
128
130
127
126
130
128
123
129
123
123
122
122
122
122
123
126
128
121
131
130
130
130
128
127
126
131
122
123
125
120
118
127
120
121
123
122
123
126
121
127
125
125
126
125
125
126
128
127
130
129
128
126
124
128
128
124
129
121
125
120
130
124
126
131
122
128
130
126
126
127
125
123
127
129
125
125
127
126
131
131
129
132
132
131
128
134
123
131
126
123
127
128
127
126
128
125
132
131
131
127
131
124
128
127
130
131
136
131
132
134
128
130
131
131
123
132
135
128
132
132
128
129
126
125
127
119
123
126
123
125
131
125
122
125
122
128
129
123
125
126
124
125
123
122
122
122
126
124
120
123
126
125
124
124
128
119
123
120
124
122
125
129
121
129
125
127
130
125
125
133
125
125
128
127
130
135
131
131
138
131
128
135
129
130
133
127
131
130
131
129
133
131
134
135
129
132
128
131
124
130
126
127
124
131
129
121
130
126
125
126
123
123
130
120
126
129
121
125
124
123
117
125
115
124
114
119
121
125
115
128
120
122
127
124
127
119
126
118
127
120
127
127
124
128
124
129
128
131
123
128
127
129
133
126
130
125
130
134
134
129
138
134
132
140
136
133
132
135
128
135
132
130
135
126
133
133
131
130
131
129
125
127
126
123
125
129
121
127
124
128
127
120
120
123
124
122
125
123
121
128
126
125
123
125
123
125
128
124
127
128
128
125
127
129
125
126
127
122
124
124
126
131
125
128
130
125
128
132
121
130
128
125
129
122
126
123
126
124
130
124
129
130
127
130
129
131
127
129
131
127
126
124
130
126
130
130
130
131
129
130
126
128
123
128
125
124
128
125
128
129
132
124
131
129
125
133
124
127
124
128
125
130
124
129
127
126
129
130
126
129
128
127
131
132
129
128
128
130
127
124
130
127
128
126
132
128
127
128
125
127
121
125
128
121
123
127
121
127
122
123
128
118
127
119
119
125
123
120
122
127
123
125
124
123
126
126
127
124
130
126
128
128
128
126
128
126
128
127
129
129
132
130
133
131
133
130
132
132
128
131
128
134
130
134
130
131
132
131
132
131
130
130
133
125
132
128
126
128
128
125
126
127
125
125
127
124
130
126
123
125
125
121
125
127
119
132
122
127
128
124
125
123
125
119
125
122
123
125
120
131
118
126
121
125
123
126
124
129
125
124
132
129
121
132
125
127
126
129
125
131
127
126
133
125
130
132
129
126
132
129
128
132
125
131
128
133
129
128
130
127
130
126
131
125
128
127
127
130
126
130
130
128
126
129
128
125
133
126
130
125
133
128
127
126
124
126
124
131
129
127
129
129
129
124
125
127
127
126
126
126
128
130
127
128
129
124
130
121
127
125
127
124
124
122
130
123
123
124
122
123
120
124
123
125
124
127
125
125
127
125
129
121
128
122
125
124
128
127
124
130
126
129
129
127
128
127
128
125
132
124
132
130
127
128
129
126
129
129
126
127
133
127
133
125
133
128
128
131
128
129
129
132
129
135
126
135
128
128
130
128
129
127
130
126
130
133
127
129
131
130
126
126
127
125
128
124
127
130
125
131
126
121
130
126
126
123
126
125
125
130
121
126
122
124
124
125
122
124
123
118
130
120
127
124
124
126
125
129
123
125
123
126
125
127
129
126
126
127
128
127
129
128
130
126
127
127
129
128
131
128
129
126
132
127
128
128
127
133
126
133
129
129
129
132
129
130
133
128
134
129
134
129
131
127
129
129
125
130
129
130
127
129
126
129
131
127
126
126
125
125
126
123
128
127
129
126
125
123
126
124
125
125
128
123
128
124
124
123
121
125
121
124
124
126
126
125
124
126
126
125
126
125
128
123
127
128
130
127
127
131
129
127
130
128
130
129
131
131
128
130
128
130
129
129
131
132
126
132
128
126
131
129
129
124
133
124
131
128
129
128
130
130
129
129
127
134
126
129
126
132
129
130
127
129
129
128
129
127
127
127
127
129
127
125
125
128
125
124
125
125
126
125
121
128
126
126
126
126
123
127
125
123
125
123
121
125
124
124
124
122
125
127
120
129
123
127
125
126
125
126
127
127
126
124
131
125
129
128
130
129
131
127
127
130
130
127
129
129
128
130
132
129
129
128
132
130
132
128
132
126
130
132
131
127
132
128
132
129
131
130
133
131
130
130
130
133
127
131
129
129
130
130
128
125
127
128
127
125
125
125
121
128
124
121
126
122
123
125
126
124
125
123
126
127
123
124
124
124
122
127
121
125
127
122
125
122
124
127
124
125
129
126
128
127
127
126
125
128
127
127
128
129
126
128
131
129
130
134
127
130
129
126
131
126
132
129
131
130
132
126
133
125
133
127
128
130
128
132
126
130
129
130
127
130
128
130
129
127
134
123
132
126
128
128
129
130
125
128
127
130
124
128
125
125
127
121
128
124
126
126
128
123
127
125
129
123
127
128
121
127
125
130
128
123
126
124
126
125
122
127
128
124
127
125
125
128
124
127
128
126
129
126
128
125
130
123
132
125
126
131
127
128
132
129
130
131
124
130
129
124
136
122
132
127
129
130
129
126
131
128
129
129
129
130
129
129
127
131
129
126
131
129
130
132
126
129
129
126
130
127
127
129
129
127
126
128
125
129
125
124
127
124
125
129
118
126
123
122
130
121
125
128
123
129
127
122
130
126
124
127
125
124
126
126
123
126
127
127
128
124
127
127
123
129
126
127
129
125
129
128
127
129
126
126
131
126
128
129
129
130
131
129
129
130
129
129
131
128
127
132
126
132
128
128
130
129
130
129
127
128
132
129
128
130
130
128
131
128
129
129
127
128
132
123
135
131
130
127
124
132
122
128
125
125
127
125
125
126
126
123
129
121
123
129
121
123
126
124
127
129
126
128
127
126
127
124
126
125
124
127
126
128
126
128
126
128
125
126
126
128
124
128
129
128
127
126
127
129
126
128
131
128
131
131
129
128
130
129
132
125
130
131
127
129
128
132
129
130
123
133
126
129
128
127
132
124
132
127
131
124
134
124
130
125
128
127
127
126
130
127
129
127
127
127
127
125
126
124
127
125
123
129
125
123
123
126
124
127
124
123
125
125
125
125
127
124
130
123
128
131
125
126
125
128
121
127
122
131
123
127
129
128
129
127
127
122
130
124
129
128
125
129
128
130
129
127
127
131
128
129
132
129
133
128
130
130
130
126
130
126
130
128
134
125
133
124
131
125
132
127
130
124
130
128
126
130
130
131
124
132
126
130
126
127
127
125
129
130
130
126
129
122
131
127
124
127
121
127
127
123
126
126
122
127
124
124
126
126
123
122
123
126
125
128
125
126
126
124
127
126
122
123
130
121
124
129
126
125
127
126
129
128
126
130
125
126
130
125
130
128
127
129
127
131
128
128
129
133
124
135
131
134
126
128
131
131
130
127
131
128
127
129
131
126
132
129
127
127
127
125
129
130
128
128
126
131
126
125
130
127
128
128
123
126
127
128
125
130
123
127
123
129
120
129
117
129
125
123
128
124
127
124
124
124
127
118
130
126
124
125
127
129
126
129
124
129
124
128
128
126
125
129
125
129
127
124
129
127
127
130
126
131
124
129
125
133
126
128
128
128
127
131
130
129
135
126
133
127
130
127
129
123
134
127
131
128
131
127
129
128
129
128
127
127
125
130
128
129
130
129
126
131
125
129
124
126
127
127
128
126
127
123
131
128
126
125
125
124
131
125
125
125
127
125
124
126
126
122
127
124
125
127
123
129
124
125
125
127
126
129
123
131
125
126
125
125
125
125
123
127
127
128
127
126
129
128
130
123
127
125
126
128
127
128
130
126
134
125
131
128
127
129
129
128
132
127
131
130
127
132
125
130
127
130
129
128
124
130
130
126
129
124
130
126
128
127
129
127
128
132
121
131
123
127
124
127
123
131
124
127
125
126
127
125
125
124
128
124
126
127
124
127
126
122
125
125
123
128
123
125
127
122
128
128
125
125
129
129
129
127
126
127
127
126
128
127
127
129
128
127
129
129
128
129
127
124
127
130
129
129
127
132
128
128
129
131
127
132
128
129
130
130
129
128
125
130
129
127
127
130
130
127
126
130
121
131
127
126
125
130
125
130
126
128
126
127
125
128
124
128
128
126
129
127
126
125
129
123
126
125
127
125
125
127
125
126
124
126
126
127
123
124
126
125
127
125
127
125
128
124
126
125
129
127
127
127
125
126
126
127
123
129
126
129
126
126
129
129
127
129
125
126
130
129
125
127
129
129
129
129
128
131
129
124
132
128
130
131
127
129
130
133
125
125
128
132
125
134
124
132
128
127
125
129
127
127
129
123
132
127
128
129
123
127
126
126
125
128
123
131
126
127
126
128
125
123
128
121
130
124
125
124
128
122
129
123
126
126
124
124
129
124
126
124
125
129
127
127
128
128
124
132
123
131
127
125
129
128
127
131
128
126
131
124
131
129
130
130
128
127
127
126
130
127
129
127
131
129
128
131
130
126
129
127
128
125
128
131
127
127
128
130
126
128
124
130
124
127
129
126
127
127
127
126
125
126
130
125
127
130
123
128
126
125
127
123
128
124
130
123
130
124
128
123
128
125
124
125
125
128
124
129
126
126
128
126
124
127
124
126
128
129
124
130
129
128
127
128
130
128
124
128
130
123
128
126
128
127
127
128
129
125
132
125
130
127
125
126
130
128
126
130
128
131
127
130
127
131
123
130
127
127
130
127
127
128
127
129
130
123
129
129
128
128
126
129
126
126
125
130
126
127
127
127
127
129
122
131
125
125
124
127
125
129
124
126
126
124
127
125
126
125
127
125
129
127
128
125
128
121
129
127
125
125
126
128
126
128
127
127
126
131
126
129
128
127
126
130
126
129
127
127
128
128
126
131
131
127
129
128
129
126
126
125
131
124
134
126
128
129
126
129
127
128
126
127
129
129
130
128
129
127
129
128
122
129
126
128
126
129
126
131
125
128
125
126
127
127
125
126
128
127
127
126
126
125
128
127
127
124
128
127
127
123
127
126
130
124
130
124
126
128
127
125
127
126
126
125
127
125
124
127
126
129
128
127
128
127
129
127
126
130
128
127
119
62
103
135
142
165
187
167
208
115
192
138
105
92
94
88
94
93
77
9
47
66
130
112
141
188
141
235
153
197
79
114
140
226
198
57
165
92
160
128
140
106
191
158
165
172
90
115
110
152
138
147
99
157
144
123
153
94
72
64
67
87
113
100
100
83
115
101
80
50
45
81
105
114
146
142
142
193
174
181
177
157
184
189
204
202
184
154
183
164
153
169
169
145
131
108
105
102
104
100
110
113
84
90
51
58
84
56
105
153
116
46
51
94
105
109
94
106
139
125
150
151
162
179
169
184
184
153
180
194
191
167
169
151
132
125
114
144
161
152
142
132
141
124
79
98
90
85
64
61
85
70
60
59
62
55
61
82
87
102
130
132
134
156
157
154
155
151
184
174
184
191
166
175
183
195
176
170
170
172
154
163
144
150
101
82
73
111
83
89
76
83
111
115
90
98
77
86
110
117
117
115
124
122
131
134
140
105
110
123
129
138
125
142
159
172
180
191
189
177
161
192
141
143
154
155
156
152
131
149
147
138
132
100
116
88
99
78
65
72
81
84
55
86
69
40
73
97
85
122
114
140
169
172
155
144
176
174
144
169
161
179
183
188
200
150
188
126
133
131
142
84
106
88
129
106
106
103
102
103
135
90
99
106
111
103
129
100
75
98
108
94
104
105
118
116
122
102
142
140
121
134
142
123
151
169
165
169
182
182
173
167
161
168
173
162
166
166
150
145
139
126
123
122
114
95
98
77
53
72
67
54
63
64
61
53
61
76
94
85
129
116
135
120
144
141
148
151
166
170
180
185
196
192
185
214
203
208
170
189
142
142
149
125
105
126
128
138
116
108
96
108
99
117
113
137
110
114
86
93
78
69
74
66
78
96
99
103
80
85
124
128
123
117
148
136
134
157
147
175
167
165
175
177
185
178
205
178
186
181
165
163
162
133
120
113
128
103
92
77
85
79
82
84
62
91
78
100
64
91
99
85
106
104
95
134
124
124
118
121
96
131
136
127
154
149
147
153
167
174
182
176
190
177
155
180
157
176
156
147
123
144
138
132
139
121
117
97
98
101
89
93
79
88
91
75
91
87
107
105
114
105
124
127
131
119
135
126
115
139
159
146
173
134
172
168
159
156
150
162
147
140
137
126
144
138
135
126
142
146
119
137
129
124
141
111
102
128
118
106
124
108
109
107
108
84
121
98
84
108
116
132
120
120
118
126
146
142
141
133
145
124
122
141
135
150
148
142
139
151
171
150
144
146
150
135
124
122
114
123
104
110
118
116
101
101
104
107
107
113
97
104
119
122
119
112
125
135
121
137
135
143
155
141
153
157
148
156
143
154
148
156
147
123
125
126
126
135
137
131
117
131
118
115
116
103
97
115
98
117
109
115
121
107
127
139
124
130
141
133
131
122
144
132
150
130
124
130
137
125
141
140
129
134
122
148
125
132
140
131
145
141
142
133
142
127
106
131
119
117
117
107
115
125
113
115
100
112
97
113
110
107
109
100
119
112
121
116
138
127
150
135
142
145
142
150
158
148
155
159
147
131
140
132
147
150
117
128
131
128
128
134
113
130
103
108
121
111
117
109
117
102
126
123
107
102
131
118
116
129
123
115
127
124
135
132
130
135
132
145
152
136
152
125
138
149
149
130
149
134
145
140
140
135
123
126
129
120
116
119
115
108
110
105
121
95
117
106
104
112
119
108
111
103
108
119
127
128
129
125
134
140
137
140
136
144
143
141
138
142
152
146
142
134
145
139
148
140
137
140
140
125
131
133
117
127
118
118
114
112
108
120
109
105
109
117
121
111
104
117
104
113
114
107
111
127
116
120
124
129
127
136
135
141
143
154
150
144
143
159
151
150
144
147
148
144
148
151
137
126
143
143
123
118
118
121
116
115
100
112
107
120
96
96
99
101
97
107
123
108
120
137
138
132
135
136
147
140
149
148
152
138
133
141
139
132
133
119
133
126
153
132
123
106
126
146
116
123
117
131
127
121
116
125
121
128
125
121
123
117
118
128
124
106
128
117
127
140
120
137
129
134
128
128
143
145
141
137
140
137
137
140
132
136
130
121
121
120
120
115
122
113
117
124
110
124
115
123
112
109
116
113
114
122
125
138
129
133
126
138
134
147
140
145
141
132
141
131
116
133
149
140
137
134
135
130
138
136
137
123
122
122
118
116
123
111
121
112
110
119
113
121
120
129
122
126
117
105
113
118
125
109
120
138
133
133
138
142
146
139
142
137
143
141
143
138
131
135
123
125
132
130
131
133
131
130
133
121
126
122
117
124
124
115
109
119
118
122
113
126
113
116
121
137
134
126
123
122
129
125
128
115
124
122
120
127
130
129
135
133
137
136
140
140
135
135
130
126
141
130
131
132
122
132
124
126
126
125
129
124
133
121
133
129
123
124
122
120
121
111
117
120
116
130
119
133
127
125
131
130
129
119
137
122
125
140
125
127
130
126
133
139
115
125
137
135
131
133
144
133
134
128
120
126
121
129
118
125
128
120
123
129
127
125
110
123
127
117
121
123
115
132
128
121
130
129
136
149
133
135
140
131
132
135
132
130
130
132
121
125
131
124
130
127
118
127
123
120
117
119
124
121
116
121
112
115
116
115
126
124
130
127
134
130
130
134
127
135
140
133
138
139
135
139
134
140
136
142
141
129
137
133
131
135
129
131
123
126
119
119
119
113
119
121
116
116
123
120
128
116
132
128
121
133
125
124
117
125
128
127
133
125
129
127
124
126
123
137
135
132
135
129
135
133
125
127
129
135
129
128
130
129
130
121
125
135
125
133
124
121
122
127
119
117
120
115
119
119
118
118
120
123
129
124
128
120
126
131
134
125
132
133
131
133
123
131
133
135
131
128
134
131
132
137
124
136
134
127
128
139
130
131
131
126
128
132
127
128
123
119
120
120
124
128
119
129
123
128
127
128
121
125
122
121
125
124
128
126
122
126
129
129
125
125
136
129
129
122
126
131
132
134
131
132
137
138
132
132
140
131
132
127
130
137
126
126
126
127
125
122
124
125
126
122
124
116
117
118
112
114
122
114
113
119
116
130
124
124
123
128
127
127
128
129
130
131
130
136
135
136
133
133
138
138
135
136
130
130
134
128
129
132
134
126
131
125
128
124
128
124
117
125
121
118
119
117
129
122
127
118
130
115
124
122
130
124
130
127
128
134
130
130
127
130
130
131
128
131
133
133
133
130
134
130
134
127
130
131
133
129
132
127
131
135
132
126
128
122
123
132
121
120
126
122
122
132
124
123
126
125
124
121
127
124
123
116
128
119
123
123
129
129
124
130
123
138
134
133
130
138
129
131
134
130
128
128
132
133
126
129
125
127
131
126
125
132
128
118
127
123
123
125
121
125
128
127
120
130
122
124
127
124
123
122
125
122
128
122
127
123
131
133
131
133
127
128
129
125
125
129
135
127
135
129
124
138
130
128
130
126
126
130
123
136
127
127
129
129
126
126
130
114
123
127
132
120
123
129
122
127
127
125
125
126
126
129
125
128
128
125
132
126
135
131
129
125
138
128
134
133
132
135
134
132
130
128
131
128
128
124
126
125
126
121
124
124
124
123
124
123
124
120
126
123
124
124
124
119
125
125
130
123
128
126
129
126
128
129
128
130
128
132
128
132
125
132
127
123
131
123
124
128
126
123
126
125
121
126
123
125
126
123
125
126
127
125
130
127
133
129
129
130
128
135
129
126
131
130
129
127
127
125
125
129
127
130
127
127
131
123
124
126
124
123
129
126
123
126
127
132
128
126
132
130
129
130
130
129
128
128
129
135
124
128
121
129
127
124
126
125
125
126
127
128
130
129
124
131
130
131
129
135
128
133
129
129
136
126
132
126
129
127
127
127
124
127
122
124
127
119
123
124
124
123
127
122
128
124
122
127
123
124
124
128
122
125
123
128
130
124
130
127
124
131
129
124
132
133
128
130
131
130
134
130
133
131
132
126
132
131
130
132
128
128
127
125
123
125
117
125
118
122
121
120
121
126
125
127
125
122
128
130
127
127
125
129
127
129
127
128
128
129
128
131
130
129
132
129
126
133
131
131
130
131
129
131
128
130
129
128
133
127
130
127
127
126
126
127
125
126
126
130
122
125
125
125
124
124
126
125
128
124
124
124
125
129
127
131
128
134
127
131
131
130
129
133
131
134
131
129
129
127
127
129
128
127
126
125
128
124
128
126
124
120
128
123
123
126
122
125
126
123
124
129
123
128
123
130
127
130
127
130
127
127
129
128
128
129
124
127
124
121
129
127
125
126
127
125
127
128
128
124
126
128
128
127
127
127
126
127
123
129
123
124
127
128
128
128
126
128
129
128
129
125
134
124
126
129
129
130
128
130
127
131
129
131
127
128
130
130
126
127
130
127
127
128
130
129
125
132
124
133
124
131
128
126
128
125
129
127
128
124
130
128
128
127
127
127
129
128
126
125
123
125
123
129
124
124
127
126
127
128
126
128
129
126
125
129
125
129
126
129
127
125
127
125
128
126
127
124
127
124
124
127
126
124
124
126
129
126
125
127
130
125
130
129
129
127
129
129
125
128
124
127
125
127
125
128
127
125
127
126
128
125
127
124
128
126
129
126
126
128
129
130
126
128
130
128
132
129
130
128
130
129
125
130
131
128
127
128
132
128
127
130
128
130
128
131
130
125
129
129
131
129
126
128
126
130
127
125
128
125
125
127
123
126
124
124
125
125
124
124
128
127
126
128
128
126
129
125
131
128
129
130
129
128
128
128
126
130
127
130
125
130
126
128
124
126
127
123
126
125
124
126
126
124
128
126
125
127
127
127
128
128
125
126
126
122
128
126
130
128
128
128
125
125
128
128
126
125
127
128
128
129
128
129
130
131
128
130
125
128
130
131
124
129
128
126
128
125
127
129
126
127
127
130
126
127
127
126
128
128
126
127
126
129
126
129
127
129
127
132
129
129
126
131
127
129
129
126
130
126
131
127
130
124
125
128
127
127
126
127
125
127
127
125
127
125
128
127
130
129
129
128
128
126
130
124
128
126
124
126
125
128
129
125
130
125
128
123
126
125
123
125
126
124
130
127
129
128
127
128
130
129
128
124
127
128
125
125
123
129
123
128
125
126
127
125
126
127
124
127
127
126
125
128
127
129
128
129
128
129
126
128
131
125
132
127
128
130
126
130
127
127
127
129
126
128
126
129
126
127
128
128
127
129
128
129
128
128
128
128
128
127
131
126
127
129
127
127
128
128
127
130
126
128
125
126
129
125
126
130
128
129
130
129
129
127
129
127
127
128
127
128
128
125
127
127
125
129
127
127
127
124
128
126
127
127
127
126
124
128
126
126
126
126
128
127
129
129
130
129
127
126
129
127
127
127
123
127
124
127
124
124
124
126
127
126
130
127
126
126
130
122
125
126
124
126
126
126
129
124
127
128
128
126
130
126
127
127
126
129
126
127
125
126
130
129
128
128
129
128
130
128
126
124
128
130
126
128
126
131
127
128
129
126
128
128
129
126
128
126
127
126
129
125
127
126
127
129
124
127
130
132
126
127
129
127
130
128
127
130
129
129
131
127
128
128
126
126
129
126
129
129
126
125
129
127
127
127
126
131
127
129
128
127
129
127
129
127
128
127
129
123
128
127
125
129
124
128
124
127
128
124
123
124
125
125
128
127
129
124
129
130
125
129
127
128
127
128
126
125
125
131
136
125
125
126
123
123
113
120
127
126
131
135
136
138
134
134
130
131
142
147
127
127
125
127
120
115
113
109
114
121
118
122
129
127
134
125
127
135
133
137
126
129
138
129
130
123
119
132
133
121
137
133
120
144
142
113
116
130
129
133
134
119
124
121
130
143
122
104
119
133
112
134
144
110
115
131
125
125
115
125
124
133
146
129
110
141
127
115
129
118
135
112
129
130
118
140
132
129
126
138
124
129
120
128
137
125
117
134
137
127
133
121
138
140
132
122
129
134
133
127
114
120
139
122
132
139
133
130
128
139
115
104
134
107
118
150
118
133
134
112
135
108
121
135
126
126
130
134
134
121
135
116
108
128
127
128
113
128
137
125
125
133
119
113
129
125
119
128
120
128
115
134
134
130
125
127
133
133
144
147
129
127
146
130
128
145
125
123
131
114
118
140
124
115
122
131
133
128
135
140
120
128
152
124
133
119
111
119
113
108
128
142
126
131
122
116
108
97
134
149
134
127
114
124
143
133
127
124
131
150
143
120
125
138
133
131
134
125
132
138
114
98
105
121
126
133
128
120
111
112
118
121
112
115
128
146
146
120
112
126
129
132
119
116
133
138
127
123
139
128
120
136
133
132
139
123
141
146
120
133
147
148
151
128
138
150
121
116
128
137
142
111
84
117
148
128
133
116
99
93
102
114
142
123
101
110
120
132
141
142
127
104
108
136
136
142
118
124
142
136
142
155
122
86
124
150
116
131
155
106
139
134
137
154
143
160
124
135
155
147
125
117
117
118
125
123
109
112
119
139
144
119
120
131
139
110
128
126
108
113
135
105
94
125
122
100
130
128
129
141
126
125
126
104
133
112
120
121
143
169
136
134
115
102
143
145
131
127
154
149
124
132
138
134
120
124
103
85
114
128
125
84
90
97
141
175
107
118
141
139
149
156
144
143
121
164
166
130
129
143
142
116
131
111
128
134
122
137
138
101
131
116
109
128
117
100
109
126
126
120
140
125
133
150
125
115
103
132
134
97
120
121
110
154
120
116
137
102
134
140
88
117
136
133
147
132
81
101
131
102
125
148
123
113
134
161
133
128
151
135
145
172
170
160
141
157
166
131
124
108
119
122
111
119
125
112
143
128
110
112
130
106
95
114
109
77
98
132
148
96
105
121
114
116
140
145
137
151
162
148
149
135
144
148
162
140
138
125
111
145
143
157
131
120
154
160
154
113
117
153
128
118
142
130
121
116
119
134
118
97
143
154
99
126
154
100
110
143
96
101
130
122
112
119
120
109
119
126
116
117
134
141
115
93
95
108
121
98
101
137
134
96
127
119
86
113
159
127
116
150
171
145
144
158
129
124
148
123
108
103
102
135
133
107
131
129
120
154
131
106
98
112
134
93
90
118
127
133
108
119
112
107
148
137
136
138
130
158
152
145
142
154
145
123
138
137
127
140
133
139
136
140
139
152
130
118
143
153
119
160
160
124
133
157
124
122
136
126
136
158
133
152
142
126
136
127
91
103
120
121
113
139
121
111
129
132
118
135
139
128
98
100
120
112
107
97
110
138
111
109
113
101
116
130
130
124
123
154
159
148
122
120
131
150
136
116
106
114
110
130
147
120
107
115
150
142
103
111
131
129
127
105
78
130
149
125
111
112
124
155
129
132
152
142
152
147
136
121
139
150
127
122
125
102
122
142
140
120
112
138
143
148
115
119
134
119
140
150
111
127
164
143
123
124
125
130
137
144
114
124
137
110
136
135
98
126
118
112
125
127
118
123
140
113
97
137
154
115
104
104
107
118
131
120
131
135
138
134
100
125
124
111
145
133
148
150
148
142
113
113
131
139
128
106
124
120
106
143
111
94
117
154
135
92
111
132
125
110
104
77
101
134
136
100
109
118
125
153
141
155
142
135
152
146
137
129
151
165
128
138
147
102
130
138
152
125
132
161
153
137
134
139
103
110
141
129
134
140
139
148
130
114
123
127
127
155
139
116
134
117
123
143
122
110
116
111
128
133
106
122
149
94
98
139
135
120
107
103
103
115
127
131
131
123
136
132
95
107
115
123
142
147
148
133
142
151
126
114
129
136
141
123
141
148
104
112
133
98
93
128
156
136
103
134
118
110
100
99
111
95
118
119
98
117
128
145
130
119
162
143
112
148
133
129
159
155
145
135
152
145
114
130
129
148
127
140
168
144
133
153
138
96
93
126
125
131
130
132
145
126
114
132
128
118
158
139
110
153
141
111
138
145
95
108
129
139
104
127
158
127
107
146
145
114
101
118
117
114
131
137
112
125
143
112
97
116
108
124
147
151
115
130
149
143
113
103
124
133
132
136
131
128
102
135
121
75
98
143
150
120
111
138
116
80
113
111
105
97
122
123
109
134
139
131
135
140
147
117
134
156
131
152
154
142
140
134
147
137
119
138
133
149
141
152
176
141
132
148
119
94
113
124
120
134
136
133
141
123
111
136
120
124
141
122
150
160
94
139
153
89
90
133
127
108
143
144
122
118
114
133
137
115
98
132
113
111
137
123
96
131
122
102
91
115
94
118
159
149
114
137
157
138
114
108
119
122
136
163
140
116
125
140
108
88
123
123
138
145
135
146
116
91
112
111
105
97
113
104
116
132
131
129
138
128
125
133
145
139
136
161
154
132
143
139
151
130
128
124
129
130
136
162
170
122
136
165
119
97
132
105
116
151
146
138
140
124
113
127
121
126
141
133
149
142
132
120
130
125
84
113
129
109
119
148
138
117
110
131
128
124
115
124
127
108
127
139
103
135
131
102
90
127
110
102
139
160
130
141
149
143
131
116
101
119
118
131
146
132
113
132
126
98
108
129
125
156
140
120
136
125
81
105
115
102
103
100
89
120
121
121
141
139
108
119
156
138
117
172
121
140
159
148
149
132
133
126
142
142
150
159
142
150
158
155
119
107
124
109
139
142
135
137
147
130
111
129
127
117
144
138
135
126
146
136
102
100
116
121
117
113
127
139
134
111
128
127
112
115
125
105
127
128
108
128
119
108
117
118
96
95
116
117
133
159
134
140
144
148
137
122
112
116
127
141
138
144
130
132
130
98
103
123
131
145
144
128
141
131
91
108
106
87
109
100
110
119
142
144
118
131
119
130
127
140
159
167
145
150
150
140
142
127
120
130
107
143
144
153
130
140
151
137
116
109
107
124
126
153
138
143
146
144
121
131
121
131
140
126
143
138
147
143
93
112
137
137
108
111
142
124
115
118
132
135
118
119
124
109
108
142
115
112
116
128
112
115
112
91
108
116
137
156
146
131
133
149
127
107
103
111
99
138
112
96
118
124
120
119
99
115
138
149
153
156
136
112
120
132
131
140
118
144
132
122
140
143
131
137
142
130
118
110
132
141
136
141
144
138
127
131
123
131
118
98
126
141
137
152
136
143
130
113
111
114
103
127
149
127
136
140
129
122
113
121
98
123
147
141
150
134
126
128
112
151
133
84
129
142
107
102
139
155
143
144
136
127
115
110
138
122
123
151
126
110
119
129
98
98
126
121
146
140
136
150
122
113
117
112
104
128
127
122
129
146
142
115
113
136
128
135
147
149
118
127
125
134
139
140
133
142
101
120
126
125
122
151
136
95
110
130
123
126
125
138
145
127
116
122
115
146
121
99
113
116
141
145
140
136
120
112
129
137
114
123
146
135
124
134
124
116
102
112
129
112
115
154
161
124
142
144
118
130
122
117
123
114
133
145
127
140
141
129
142
127
107
119
135
138
156
128
106
121
132
128
119
93
119
135
142
133
143
145
144
118
114
127
100
112
157
126
108
147
162
124
102
129
110
100
123
149
123
106
127
120
120
125
99
121
119
113
120
140
130
157
167
143
131
148
132
141
163
154
139
148
148
138
123
125
104
115
117
126
129
133
136
155
151
104
97
125
137
99
103
111
112
126
131
128
89
81
132
116
106
120
128
126
141
140
118
90
114
120
99
90
122
108
120
154
140
132
150
137
115
125
131
107
128
154
138
134
138
145
149
130
120
130
162
146
164
183
150
140
141
127
110
113
109
119
113
111
126
134
127
95
127
113
93
135
145
116
118
118
101
118
122
101
101
139
139
105
133
141
154
163
170
152
154
143
134
160
150
131
155
140
131
128
116
118
116
135
144
126
151
167
147
117
112
121
127
119
136
116
125
126
129
139
96
106
126
89
113
124
102
137
162
105
98
120
113
95
98
91
99
95
101
131
145
152
140
126
113
104
116
120
122
129
131
121
110
150
144
106
111
158
148
131
163
167
149
138
134
108
106
124
117
125
102
110
141
134
118
123
102
92
126
138
115
120
127
103
104
125
122
91
118
155
139
97
139
156
137
151
177
127
140
146
168
142
134
157
138
134
134
135
113
116
155
138
121
128
141
164
143
137
142
113
120
167
144
113
134
140
115
124
118
121
113
113
130
134
117
144
153
122
111
133
127
96
97
124
110
106
127
117
121
144
154
113
96
112
113
128
139
127
102
97
131
150
114
92
126
160
131
158
132
123
161
146
128
94
91
114
118
147
112
91
119
131
109
130
112
74
131
124
113
130
113
108
125
125
113
103
139
148
118
120
157
142
142
171
174
132
130
152
165
127
140
145
129
133
128
125
118
113
152
146
111
121
140
150
135
148
133
86
129
168
131
129
131
113
108
122
107
118
123
111
125
130
123
146
180
125
119
142
113
97
117
121
110
126
128
117
117
133
149
125
100
121
117
131
146
126
105
105
139
138
101
109
124
141
134
143
130
114
163
156
114
93
92
117
142
139
130
107
87
119
136
126
86
87
130
107
115
125
116
124
119
119
120
113
122
127
149
125
127
156
140
143
181
158
124
144
165
140
141
158
123
116
145
133
124
133
125
141
155
122
127
133
140
137
163
111
82
136
156
138
146
135
116
107
119
119
113
114
120
123
122
123
151
157
142
134
124
112
109
136
112
108
141
124
91
105
137
131
124
114
119
118
132
146
96
107
148
131
100
118
131
133
135
152
129
108
142
155
130
111
97
113
144
145
132
109
80
114
152
119
92
109
119
107
125
123
107
125
136
121
106
119
131
120
129
138
127
130
136
152
164
149
136
168
169
144
162
138
111
133
135
124
126
144
121
142
159
121
130
117
141
154
136
105
94
131
135
151
155
128
124
123
107
114
107
108
108
124
117
116
145
156
152
130
120
106
137
128
113
121
127
97
102
124
128
137
120
117
117
119
161
135
92
129
144
114
95
127
125
144
148
150
138
116
138
158
147
113
105
106
135
146
133
113
92
119
138
112
101
102
109
106
127
116
102
115
144
118
97
111
132
117
124
131
140
112
141
140
133
149
143
155
171
158
154
144
121
121
129
127
125
137
121
141
159
146
138
117
140
156
136
130
117
124
119
147
173
147
108
122
115
94
115
111
96
113
113
130
142
149
160
124
117
104
108
141
122
123
131
115
107
109
117
116
142
132
111
125
138
149
134
109
129
108
83
120
143
102
128
151
151
122
131
142
147
159
137
122
93
120
154
139
112
102
124
131
108
113
116
107
118
141
102
89
119
148
105
95
128
125
112
129
131
126
127
140
133
135
150
144
168
164
139
147
146
127
123
135
130
116
135
151
156
144
143
121
137
157
138
121
127
135
114
131
162
135
128
124
116
91
100
121
116
107
108
127
128
150
173
123
102
101
144
143
108
123
126
102
127
119
121
121
135
145
132
122
133
143
135
135
115
87
98
129
125
124
134
140
153
126
132
141
141
149
140
127
76
95
148
118
106
113
107
104
91
113
128
111
97
132
111
83
127
155
119
97
119
125
124
152
140
133
153
137
145
158
137
164
158
143
155
135
130
139
128
130
122
127
136
138
162
152
135
119
117
148
132
129
133
126
97
119
153
143
122
138
119
131
125
112
116
113
108
121
121
129
145
138
108
128
153
111
131
140
101
100
123
133
98
116
133
114
140
139
124
141
130
139
112
86
112
123
130
152
124
126
132
111
120
114
112
131
135
139
103
104
137
143
138
136
105
108
118
145
152
117
100
150
137
111
144
148
116
97
129
138
111
131
154
134
125
125
111
109
124
130
134
138
148
134
120
132
135
115
117
124
117
141
153
163
131
129
137
140
131
110
123
144
120
115
119
122
147
148
128
115
117
130
136
131
117
118
123
126
142
147
136
136
143
137
115
135
137
110
113
125
122
103
121
145
129
133
153
130
127
134
112
91
103
117
114
138
141
119
128
125
99
121
114
128
141
144
113
114
130
110
129
152
105
95
103
151
145
133
116
136
122
126
141
141
153
140
147
166
125
115
129
152
133
110
100
110
125
165
254
193
151
115
68
58
70
71
90
94
96
101
103
132
125
104
91
92
126
110
100
137
125
107
118
91
111
131
137
135
84
129
167
170
141
155
152
138
170
199
193
154
207
168
178
185
176
180
179
206
169
171
149
151
158
161
150
133
143
141
119
124
113
99
125
112
95
87
75
83
84
89
84
75
99
106
78
62
105
94
78
85
59
71
82
93
58
52
40
56
34
50
65
85
101
70
93
88
101
98
112
100
79
89
118
127
133
142
147
163
169
165
179
177
175
187
186
183
190
206
195
183
200
210
188
184
157
181
189
223
203
184
211
173
206
198
153
155
188
175
173
205
179
175
205
163
119
166
168
138
169
128
107
135
113
140
97
83
131
106
86
81
99
105
106
108
81
76
85
93
85
56
74
85
96
85
74
66
88
100
65
53
75
67
108
110
72
72
103
102
82
84
56
76
82
93
94
77
101
102
100
106
104
83
105
121
94
60
55
92
99
72
74
76
94
110
106
104
113
127
127
120
137
148
155
138
137
145
144
155
150
169
165
161
192
182
178
185
194
201
194
196
203
198
204
207
188
203
207
203
201
207
226
203
199
185
195
196
205
231
166
169
206
179
164
158
177
150
140
184
162
121
149
169
125
75
103
118
128
99
97
106
56
79
111
61
76
76
60
56
80
90
87
66
98
97
69
57
83
73
64
79
67
55
55
73
99
48
67
86
97
88
88
108
111
83
84
85
73
81
111
127
110
108
117
136
132
145
131
104
152
157
117
148
139
131
113
148
135
120
169
178
140
144
155
152
156
135
153
158
145
145
165
183
133
143
145
142
146
143
158
130
141
135
144
154
126
141
139
118
139
132
115
146
135
121
130
172
137
98
145
136
80
110
115
125
127
130
124
120
108
108
124
118
104
119
120
79
132
141
116
131
138
124
120
141
137
122
108
140
105
94
125
124
133
111
114
133
117
123
157
154
120
96
122
95
100
133
129
118
110
125
115
121
153
148
132
132
131
137
144
154
132
110
119
152
133
127
166
175
143
134
163
128
136
138
141
163
147
136
166
157
153
152
124
133
145
148
171
163
141
131
148
163
150
129
109
128
141
149
131
134
138
128
149
167
114
85
144
130
100
114
110
121
115
129
136
107
104
117
110
116
95
98
113
102
116
121
112
117
131
128
118
120
113
109
124
134
84
106
120
96
121
94
87
115
86
126
152
120
124
99
114
103
70
110
110
105
107
110
111
96
125
141
123
106
118
114
122
143
145
106
109
124
120
128
122
157
145
122
138
146
116
127
135
145
145
120
152
135
132
171
139
106
112
143
147
150
161
125
127
136
149
141
111
133
134
131
139
143
131
127
137
158
132
112
132
132
126
128
124
128
122
128
158
151
104
121
130
121
122
128
113
115
128
123
129
135
146
149
134
148
129
139
154
125
109
133
124
125
140
117
118
128
106
155
164
116
144
145
95
112
115
104
109
109
129
129
106
123
139
146
134
117
132
101
131
159
126
119
116
117
122
122
134
136
122
130
133
114
115
143
129
135
127
130
130
127
151
169
131
109
130
130
118
139
164
115
120
137
129
128
122
123
130
121
129
133
108
123
150
142
111
135
108
126
128
109
113
114
123
139
136
104
121
133
117
100
108
118
116
113
106
102
117
127
128
130
109
103
137
132
140
127
120
132
118
122
123
127
127
114
100
149
161
129
144
142
116
115
110
115
108
116
135
122
106
131
138
147
133
125
123
123
146
140
137
137
124
127
129
129
150
126
129
141
123
117
126
134
134
145
132
132
117
136
152
152
155
128
135
119
129
136
160
134
101
138
121
117
136
129
140
124
134
136
108
129
159
131
111
141
116
117
135
140
126
117
118
132
144
125
116
146
148
106
113
128
100
120
147
103
99
133
132
122
125
129
117
145
135
128
136
123
118
120
93
95
121
138
111
110
120
132
132
134
127
114
116
125
118
103
113
109
113
128
121
130
141
140
132
111
122
141
139
148
133
115
139
139
146
144
115
130
141
111
118
128
139
136
130
112
113
144
141
150
148
130
136
119
123
131
143
137
99
123
112
99
141
128
125
127
122
139
111
127
159
109
124
138
105
122
138
152
125
107
139
124
126
127
126
154
124
113
123
109
105
148
140
95
115
163
116
115
149
136
133
135
127
151
136
139
141
108
98
105
134
130
123
125
119
123
134
141
119
115
144
118
98
111
113
96
115
137
130
130
133
148
125
124
139
129
140
128
141
150
128
157
139
125
122
134
112
108
137
143
147
129
125
105
121
145
134
148
156
147
146
117
118
130
143
144
101
113
106
110
142
155
112
128
127
123
122
132
120
109
131
112
118
124
130
147
128
117
122
112
126
120
136
138
107
123
118
104
121
130
123
114
130
137
123
126
137
143
114
113
131
155
139
157
134
108
111
106
131
120
129
125
116
127
132
133
125
129
148
121
112
114
85
115
113
115
153
119
129
147
124
112
148
146
115
123
159
139
140
160
141
122
122
128
125
121
122
132
158
151
114
132
122
105
145
137
137
165
158
137
113
124
125
135
153
111
86
96
138
138
134
120
118
132
132
139
122
109
123
122
136
126
121
145
150
126
124
118
122
131
126
149
123
116
124
105
116
108
123
130
113
139
126
129
143
129
121
108
137
140
145
154
123
117
107
115
122
122
140
128
124
122
120
123
131
139
131
128
119
94
97
103
99
127
136
123
123
124
123
156
156
110
109
151
155
146
154
148
140
119
112
135
135
118
134
155
138
143
130
141
109
108
139
128
139
168
148
120
126
137
120
122
147
111
83
114
139
104
113
136
151
108
134
152
123
101
110
133
130
112
141
146
132
128
122
116
126
120
131
148
119
127
106
117
121
109
127
117
135
121
133
165
134
110
97
134
125
139
153
142
124
123
128
130
115
119
133
128
128
119
125
124
124
136
142
121
110
102
102
107
101
122
103
112
133
131
129
151
130
108
110
157
147
142
144
154
150
113
103
144
123
138
159
128
139
155
152
135
124
124
129
129
156
165
137
151
148
130
138
125
133
131
116
118
120
106
105
136
142
125
121
126
131
93
100
137
122
110
147
145
123
130
111
119
124
121
143
153
131
134
132
104
110
108
103
113
123
136
118
147
140
129
103
107
134
106
140
147
137
137
135
129
123
114
130
141
118
122
113
125
132
123
123
160
132
101
107
106
95
105
116
91
102
150
138
117
129
123
92
131
145
135
143
142
166
148
98
110
140
116
138
167
132
136
169
159
128
116
122
108
136
161
140
142
158
133
125
131
135
124
133
115
116
95
108
147
137
142
124
129
129
97
120
119
121
128
142
157
122
129
129
113
107
119
136
141
131
124
130
119
119
101
86
116
145
130
109
133
145
116
116
113
118
109
145
150
139
130
137
130
122
111
120
137
142
120
115
98
113
128
121
133
130
101
118
127
111
104
89
114
129
141
142
120
133
112
113
146
134
149
151
146
169
139
98
102
130
131
157
156
137
144
155
142
107
108
130
137
140
156
144
148
167
150
112
142
136
120
138
111
120
94
108
148
130
120
125
131
115
91
123
122
111
131
148
151
127
121
140
118
109
131
140
139
136
151
125
116
120
91
81
128
136
108
114
136
125
107
141
123
106
124
138
134
144
121
141
149
122
128
138
134
145
133
126
97
90
127
130
127
101
106
111
115
117
100
88
111
131
129
116
117
113
118
132
135
137
146
159
166
133
113
116
114
118
142
147
163
141
150
148
142
127
123
119
125
145
153
147
155
181
151
112
150
152
121
129
131
123
79
117
145
125
126
125
132
106
93
119
123
106
125
152
147
129
125
143
122
118
113
117
139
130
155
143
108
115
103
87
117
131
109
100
134
124
114
134
131
124
120
127
140
135
98
145
177
99
120
151
124
144
150
118
105
116
137
110
97
100
123
108
119
126
106
101
96
129
133
99
108
111
91
125
145
124
144
172
165
143
111
119
142
113
134
154
160
123
143
170
147
136
139
124
120
141
150
128
139
163
167
139
132
135
128
133
121
121
96
114
138
140
132
118
118
98
110
121
117
123
126
162
146
103
122
144
118
125
133
133
112
125
147
132
123
144
121
98
118
126
115
106
114
121
129
116
125
123
136
139
113
121
129
140
128
135
139
120
139
116
98
138
141
131
135
118
93
99
111
88
103
96
83
110
128
104
105
119
114
106
119
126
129
140
163
163
153
134
137
150
139
136
144
142
157
167
157
134
141
154
140
132
130
117
133
149
149
134
122
115
135
138
129
139
133
127
137
116
114
129
113
108
109
108
112
117
116
116
103
100
101
106
123
125
123
127
138
141
144
129
126
129
123
126
133
143
141
147
140
124
131
131
131
131
132
133
130
147
149
135
125
117
115
126
130
129
123
129
126
121
132
125
115
110
105
102
89
90
100
111
102
94
98
107
112
111
120
116
111
118
130
134
131
136
138
141
139
142
147
137
142
151
145
143
144
148
148
145
149
146
131
131
139
135
131
133
137
141
150
153
151
143
138
140
125
119
120
122
111
108
111
114
113
110
114
115
112
116
121
123
126
128
128
125
115
114
114
119
127
131
125
117
127
134
129
130
134
130
129
133
136
133
136
144
139
129
133
134
131
130
133
138
133
129
133
125
116
117
113
109
117
125
122
118
119
110
102
104
102
97
101
109
114
110
113
119
117
117
116
122
117
124
136
139
137
142
145
151
147
146
145
142
145
140
140
140
136
137
136
139
138
141
140
140
138
140
146
141
133
128
130
127
124
124
124
122
120
122
118
116
122
122
122
126
128
124
122
124
123
117
117
121
115
114
123
124
128
132
129
125
127
131
126
124
130
128
122
123
127
121
123
132
132
133
134
139
139
135
134
128
125
119
119
119
117
118
119
114
114
114
113
115
117
114
114
115
117
108
110
114
113
109
110
120
125
125
127
131
132
129
141
145
139
142
142
141
146
147
140
140
140
134
132
137
143
138
145
152
146
144
144
138
132
127
133
128
132
133
130
127
125
123
123
124
124
127
124
127
126
122
124
122
121
119
124
119
119
120
118
122
117
116
120
123
127
128
124
124
126
122
121
124
119
117
121
117
119
121
126
130
134
134
137
139
136
129
128
124
125
127
124
126
118
116
115
113
116
120
123
123
125
127
123
123
124
118
113
120
123
120
119
128
128
127
133
134
130
131
136
138
135
137
140
138
134
136
136
134
134
137
136
134
137
139
138
141
141
136
132
136
131
126
129
133
133
126
127
126
127
124
125
128
129
128
130
129
126
123
122
123
119
122
124
127
123
126
126
123
123
121
121
122
124
129
131
128
124
124
124
121
123
122
120
122
125
125
119
126
127
125
123
126
127
125
127
129
124
121
122
123
119
117
122
119
119
124
123
124
125
127
122
124
125
122
123
127
127
123
125
131
133
128
132
135
129
131
137
137
132
132
137
135
131
137
139
135
137
139
134
136
137
136
133
136
137
136
132
133
132
131
131
129
130
129
128
130
129
127
129
130
126
126
128
127
122
121
125
125
122
124
129
129
125
128
126
124
123
122
123
122
124
126
124
124
126
125
123
125
125
125
123
127
119
121
124
124
124
125
124
121
122
125
124
123
123
128
126
122
125
126
121
122
123
127
124
122
128
125
124
127
127
123
127
130
126
128
129
129
129
129
129
130
130
131
131
130
133
134
133
132
130
134
135
134
129
131
133
131
132
131
131
132
131
130
127
127
127
129
131
135
130
132
131
130
127
127
127
125
128
129
130
127
128
130
129
126
127
128
128
131
133
127
127
126
128
126
125
122
123
127
127
127
126
128
127
126
125
124
125
125
123
120
120
122
123
121
121
121
121
124
124
123
124
123
125
124
125
127
121
126
126
127
128
129
124
130
126
131
128
130
132
133
131
131
133
130
131
130
127
129
127
129
130
130
134
133
130
130
130
130
133
129
127
130
128
130
128
127
127
127
127
128
127
126
129
131
128
127
127
129
129
127
129
127
126
129
127
129
126
129
131
128
127
128
128
126
128
128
125
125
126
125
125
127
127
126
125
126
126
125
125
127
127
126
128
127
128
128
125
125
125
122
122
126
126
127
128
127
125
126
127
125
127
125
126
128
127
126
128
126
127
128
129
128
129
127
127
132
130
130
129
130
128
130
132
127
128
126
129
128
127
129
130
129
131
129
127
128
129
127
126
125
127
127
127
126
128
128
127
126
126
127
128
126
127
127
130
128
127
128
126
126
126
127
126
129
128
130
130
129
129
130
129
128
127
127
127
127
128
128
128
127
127
129
129
128
128
129
128
129
128
127
127
127
126
127
127
126
127
126
125
127
127
127
127
127
126
128
126
124
126
126
125
125
126
127
127
126
128
127
127
127
128
127
127
128
127
128
126
128
128
127
128
127
128
127
127
127
127
128
130
128
128
128
127
127
127
127
126
128
130
127
129
126
127
128
127
127
127
127
127
126
126
127
124
128
126
127
128
127
127
128
126
127
128
128
126
128
128
128
128
129
128
129
128
129
128
128
128
127
129
128
128
129
129
129
128
128
127
128
126
127
128
129
128
128
128
127
127
128
129
127
128
128
127
129
127
126
125
125
127
126
127
127
127
126
128
127
126
127
127
127
127
128
127
128
126
125
128
125
126
127
128
127
127
127
128
128
127
128
126
126
126
126
127
127
126
127
129
127
127
126
127
127
127
127
128
128
127
129
127
126
127
126
128
128
129
128
127
128
128
127
126
127
127
126
128
128
127
128
127
127
128
128
128
129
128
128
127
128
126
127
127
128
127
127
128
128
127
126
128
127
128
127
128
126
126
127
127
128
126
127
127
126
127
125
126
126
128
128
127
127
128
126
127
126
125
126
128
127
127
129
127
126
127
127
126
126
128
127
126
127
127
126
127
128
126
127
127
127
126
126
127
128
127
128
129
128
126
128
126
127
127
127
128
128
128
129
127
126
128
126
128
128
127
127
128
128
126
127
126
127
127
127
127
126
127
127
127
126
127
128
127
128
127
127
126
127
126
126
128
127
128
127
127
128
127
128
128
128
127
129
128
128
127
127
127
126
128
128
129
129
127
127
127
127
129
128
127
127
128
127
128
127
125
127
127
127
127
128
127
126
126
127
125
125
126
126
126
125
125
126
125
125
126
127
126
126
127
125
126
127
127
127
126
127
128
127
126
127
125
126
126
127
129
128
127
128
127
127
129
128
127
128
128
128
127
128
128
127
128
128
128
127
128
127
128
127
127
127
127
127
127
128
127
126
126
127
127
128
128
127
127
126
127
128
128
126
127
127
128
127
127
127
126
126
126
127
127
127
127
127
126
124
127
127
126
127
128
127
126
127
127
126
126
128
128
127
127
127
127
127
127
125
126
126
127
128
126
127
127
126
127
128
128
127
128
127
127
127
127
128
127
128
128
127
127
129
127
127
127
127
128
129
127
128
127
127
128
128
126
128
127
127
128
127
126
128
127
128
127
127
128
127
127
126
127
125
128
127
127
128
126
127
126
126
127
128
127
128
126
127
128
127
128
127
127
128
128
128
128
127
127
127
127
126
127
128
126
128
127
126
127
127
126
128
127
127
127
127
126
127
128
127
127
127
126
127
126
126
126
126
127
127
128
126
126
127
126
125
127
127
126
128
127
125
126
126
127
127
126
127
128
127
128
126
126
128
127
126
127
127
127
128
126
128
127
126
127
128
128
127
127
127
128
128
127
128
127
127
127
127
126
127
127
127
127
127
129
128
128
128
126
128
128
128
128
130
125
128
128
128
129
127
126
129
129
128
128
128
127
128
126
126
127
128
127
127
128
127
127
126
128
127
126
128
128
127
127
127
127
128
126
126
127
127
128
126
127
126
126
127
129
126
126
127
127
126
126
127
127
126
127
127
127
126
128
127
128
127
128
128
127
128
127
126
127
126
127
127
127
127
127
127
126
127
126
127
128
127
127
126
128
127
127
127
127
126
127
127
126
128
126
126
126
126
126
128
128
126
126
126
127
127
126
127
127
127
126
128
127
128
128
128
129
128
128
128
129
128
128
126
127
128
127
128
128
127
128
127
127
128
127
127
130
126
126
127
127
128
127
127
128
128
128
127
126
127
127
128
127
126
127
128
129
127
126
127
127
127
127
127
126
127
128
127
126
127
127
127
129
127
127
127
127
126
126
126
128
127
127
127
126
126
127
128
127
127
126
127
128
127
127
128
126
128
127
128
128
127
128
127
127
126
127
128
128
127
127
127
127
127
128
128
127
128
128
127
128
127
127
128
128
127
127
129
127
128
128
127
127
126
126
128
127
128
126
126
127
127
127
128
127
125
127
128
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
129
128
128
128
127
128
127
128
128
127
128
128
128
128
127
128
128
127
127
127
126
127
129
128
126
127
127
127
127
127
127
126
127
128
127
127
127
127
127
126
126
127
127
127
127
126
127
127
128
128
127
126
126
127
126
127
127
128
127
127
128
127
127
127
127
127
127
128
127
128
128
128
128
128
126
127
128
128
128
127
127
127
128
128
127
128
127
128
127
128
127
128
127
127
127
127
127
127
129
127
127
127
127
128
127
127
128
127
127
128
128
126
127
128
127
127
128
127
128
128
127
127
126
127
128
127
127
126
127
126
128
128
127
127
127
127
127
127
127
128
127
127
128
127
128
127
128
127
127
127
128
129
127
128
128
127
127
128
128
128
127
128
127
127
127
128
127
127
128
127
128
127
127
128
127
126
127
127
128
127
126
128
125
126
128
127
126
127
126
127
127
126
127
127
127
126
127
127
128
127
127
127
127
126
128
128
128
127
127
127
127
128
128
128
127
127
128
128
128
127
128
128
127
128
128
127
128
128
127
127
127
128
128
127
128
127
126
127
128
127
127
127
128
127
127
128
127
127
127
127
128
128
127
128
127
126
128
127
127
128
127
128
127
126
127
128
128
127
128
127
126
128
127
128
127
127
127
128
128
128
128
128
127
127
127
128
127
128
128
127
127
127
128
127
128
127
127
126
126
127
127
127
126
127
128
128
128
128
128
127
125
126
127
128
127
126
128
127
126
128
127
127
127
128
127
126
128
127
128
127
127
128
128
127
128
127
127
127
128
127
127
128
127
126
126
127
128
127
126
127
127
127
127
128
127
126
128
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
126
128
129
128
129
128
127
127
127
128
128
127
128
127
127
128
129
128
127
127
127
127
127
127
127
127
127
128
126
127
128
127
127
126
126
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
128
127
127
128
128
128
127
128
127
127
127
128
128
127
128
128
127
127
128
128
127
126
127
127
127
128
127
127
126
128
126
127
127
126
127
127
126
126
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
126
127
128
128
128
128
127
126
127
127
128
127
128
127
128
127
128
128
126
127
126
127
127
127
127
127
128
127
127
127
127
127
128
127
126
128
127
127
127
128
127
128
127
128
128
128
127
128
127
127
128
128
128
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
126
127
128
127
126
128
127
126
127
127
127
127
126
126
127
126
128
127
127
126
126
126
127
127
127
127
127
127
127
127
128
128
128
127
127
126
127
128
128
128
127
128
127
128
129
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
126
128
127
126
128
127
127
128
127
127
128
127
127
127
128
127
128
128
128
126
128
128
127
128
127
127
127
128
127
127
127
128
128
127
127
127
127
128
127
128
127
126
128
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
128
127
127
127
126
126
128
127
127
127
127
127
127
128
127
127
126
127
127
126
127
127
127
127
126
127
127
127
128
126
127
127
126
128
127
127
127
128
128
127
127
127
127
128
126
127
127
127
128
127
127
126
127
128
127
128
127
127
127
128
127
127
127
127
128
127
128
127
127
127
127
128
126
128
128
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
126
128
128
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
128
127
126
128
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
129
127
128
128
127
126
127
127
127
128
127
127
127
127
127
126
128
127
127
127
128
127
128
127
127
127
127
128
128
127
127
127
127
127
126
128
128
128
127
127
127
127
127
127
127
128
127
128
128
127
127
128
127
127
127
126
127
128
127
127
127
127
128
127
127
127
126
127
127
127
127
127
128
128
127
128
127
126
127
127
127
128
128
127
127
127
127
126
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
128
126
126
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
127
128
127
127
128
127
127
127
128
128
127
127
127
127
126
128
127
127
128
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
126
127
128
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
126
127
126
127
126
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
126
127
128
127
127
127
126
127
127
128
127
127
127
127
128
127
127
127
128
128
127
127
128
128
127
127
127
126
127
128
128
127
127
127
127
127
128
128
128
128
127
128
128
127
128
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
128
126
127
127
127
127
127
128
127
127
127
127
126
127
128
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
126
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
126
126
127
127
127
128
127
128
127
127
127
127
127
127
127
126
127
127
126
127
126
127
126
126
127
127
126
127
127
126
127
127
127
127
127
127
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
129
127
128
129
128
128
129
128
128
129
129
128
129
128
129
129
129
128
128
128
129
128
127
129
128
128
128
128
127
127
127
128
127
127
127
127
127
126
127
127
126
126
126
126
126
126
126
125
125
125
125
126
125
126
125
125
125
125
125
125
126
125
125
125
125
124
126
125
126
125
126
125
126
127
126
126
126
126
127
126
127
128
127
127
128
127
127
128
129
129
128
128
129
128
129
129
130
129
129
129
130
129
130
130
130
130
130
130
130
130
130
131
130
130
130
130
130
130
130
129
130
130
130
130
129
129
129
129
129
129
129
128
129
128
128
128
128
127
127
127
127
127
126
126
126
126
126
126
126
126
125
126
126
125
125
125
125
125
125
124
125
125
125
124
125
124
125
125
125
125
124
125
124
125
124
125
125
124
125
125
125
124
125
126
122
74
92
127
139
153
171
209
190
137
147
107
97
92
88
92
90
104
86
10
48
80
77
123
155
158
195
210
135
165
86
119
198
182
96
134
168
195
115
151
141
151
142
185
95
157
120
134
160
106
122
143
99
136
116
144
117
78
56
94
83
115
104
95
97
98
115
112
63
42
85
112
112
122
146
165
164
191
178
169
172
190
208
216
174
161
177
180
191
161
154
173
167
127
89
99
106
90
102
94
95
91
70
74
60
66
85
102
90
67
90
106
86
106
104
99
83
140
167
161
165
159
166
159
164
171
177
192
170
177
173
166
119
139
126
158
132
122
140
158
122
97
75
89
94
64
53
76
100
71
78
67
52
56
56
73
111
114
112
130
141
157
167
179
167
172
177
186
176
187
185
200
171
190
170
152
161
181
185
191
167
111
88
97
61
90
95
78
80
97
44
87
104
102
111
87
91
98
137
143
131
114
105
123
119
111
120
125
117
132
155
159
170
163
179
180
182
165
171
160
171
196
150
131
133
157
147
146
131
146
118
108
99
89
77
81
75
62
67
68
64
66
62
52
89
104
116
143
135
145
155
146
160
164
150
165
157
161
159
180
187
162
173
166
162
128
116
133
133
124
112
114
125
104
100
117
119
106
117
97
113
103
111
128
96
114
106
107
116
141
101
128
102
95
110
113
100
122
134
119
126
141
138
134
162
159
167
168
192
188
169
174
157
137
157
149
129
154
129
135
123
117
116
117
95
85
69
67
67
81
62
100
84
111
78
100
111
113
119
142
143
142
132
127
149
163
151
146
162
140
153
160
185
162
154
162
165
151
136
126
131
111
120
150
139
157
118
128
121
127
109
100
112
129
117
119
105
123
109
100
111
109
89
106
132
126
111
100
108
102
149
113
114
128
160
153
164
164
152
138
157
170
162
155
126
130
159
144
117
119
125
117
116
128
118
116
98
97
116
98
104
99
107
106
121
107
115
112
125
137
131
141
134
131
149
142
124
134
109
130
126
148
135
116
116
140
154
146
136
127
139
131
152
126
142
120
139
117
134
150
119
135
111
122
127
115
108
103
90
122
111
104
99
109
105
106
116
123
140
147
140
146
130
153
148
145
162
164
141
132
139
154
164
135
133
144
146
142
129
135
132
116
126
119
124
118
108
109
120
120
111
112
100
101
107
106
106
109
102
112
101
106
126
107
105
114
128
125
119
119
122
130
145
147
133
158
145
154
157
167
144
145
153
142
145
146
130
137
149
128
135
128
126
136
116
123
125
103
107
109
106
102
98
87
107
110
113
118
113
118
119
127
119
120
119
122
138
124
139
143
150
143
154
158
153
145
143
144
151
142
139
139
133
143
132
140
134
128
140
122
126
114
118
103
104
109
108
113
112
118
116
116
119
127
122
126
128
130
126
117
128
134
135
136
127
132
137
143
129
137
133
135
126
134
140
139
132
136
140
139
129
136
136
134
132
125
122
121
120
115
115
107
126
123
112
117
119
114
103
107
101
110
105
112
113
109
130
129
143
146
148
151
144
148
151
145
138
141
136
135
138
137
143
138
130
123
121
126
126
126
125
119
120
132
117
125
133
122
123
125
121
122
116
129
124
123
121
115
120
121
115
123
117
113
118
124
122
120
129
134
131
133
134
137
142
140
149
140
144
141
145
150
143
140
134
137
132
123
128
120
112
116
109
107
113
113
110
106
105
112
106
108
118
115
113
120
126
129
138
137
141
141
137
137
140
135
138
133
134
136
133
136
130
129
133
133
125
127
129
124
128
130
125
124
127
121
117
127
123
126
120
123
123
126
124
123
116
115
122
116
112
125
117
121
119
123
122
127
121
129
134
128
130
143
145
147
142
144
148
155
144
143
144
131
135
137
127
118
126
121
122
124
120
114
112
124
115
106
112
109
115
126
121
117
115
111
115
113
119
138
130
139
141
140
143
140
138
142
141
147
137
136
139
137
124
124
123
121
128
122
139
132
117
118
144
132
119
109
134
123
118
112
118
121
128
109
119
122
112
126
115
121
130
130
129
123
128
135
139
130
140
133
133
144
142
139
143
145
144
140
139
131
128
126
123
111
121
114
114
116
117
119
112
114
122
120
122
118
112
118
120
125
127
126
136
136
134
139
136
131
141
138
141
132
133
135
125
126
131
134
128
127
139
134
131
133
141
128
128
123
122
121
120
122
117
113
115
115
121
120
115
119
137
130
125
115
121
125
121
117
125
133
137
140
138
143
142
131
133
134
139
136
135
126
129
134
126
123
124
119
122
129
129
127
122
128
127
124
127
119
122
122
126
116
121
124
120
118
117
116
120
127
131
130
135
124
126
130
131
127
134
128
124
124
124
133
135
135
134
134
136
148
140
133
136
129
131
125
126
128
120
122
116
123
117
124
119
125
129
130
124
119
127
130
130
122
123
126
127
123
126
128
130
130
136
129
129
136
136
135
132
130
130
128
128
124
119
122
120
121
121
135
128
127
138
127
130
135
133
126
123
129
125
125
121
128
124
123
119
123
123
121
115
126
124
121
125
121
129
128
127
130
128
131
136
134
137
140
137
130
134
127
132
129
128
127
122
126
123
127
128
125
121
128
123
121
126
127
118
123
125
125
126
127
121
126
128
122
128
126
128
129
134
126
132
131
133
131
137
133
135
125
129
127
135
131
129
126
133
125
124
125
128
135
127
120
126
130
123
127
130
124
119
128
120
127
121
126
128
125
130
132
126
126
126
127
131
127
129
132
129
131
125
122
123
131
132
123
119
129
124
126
127
126
122
123
131
127
125
134
120
131
133
128
122
127
127
122
127
129
123
119
132
126
135
128
126
124
131
130
124
126
125
126
123
126
130
129
123
124
125
130
126
130
121
131
128
127
123
119
127
121
126
130
122
136
133
128
136
133
134
127
134
136
136
129
128
129
131
137
134
133
130
136
133
131
128
131
127
121
121
122
123
118
119
124
122
122
120
121
123
125
125
128
129
130
125
125
126
132
126
132
131
134
133
127
127
133
132
130
128
125
132
128
126
125
127
132
132
128
128
129
128
130
122
127
127
123
125
125
120
124
130
125
123
124
125
125
124
124
127
119
123
130
127
124
127
132
128
130
130
129
131
132
125
134
131
126
127
130
132
132
129
129
126
127
126
123
127
124
123
121
119
125
121
117
126
124
125
123
125
120
127
128
128
126
128
128
131
129
131
131
130
136
131
131
128
135
132
133
129
132
125
127
127
134
130
129
129
130
131
130
132
125
127
125
124
124
120
122
125
123
121
129
126
125
126
124
127
122
124
125
124
120
128
127
124
126
130
130
130
131
130
132
133
132
132
130
132
129
128
129
127
124
127
127
130
129
126
125
128
127
123
127
124
123
125
126
126
127
128
123
122
126
124
125
123
126
126
123
126
125
127
124
126
130
125
127
126
128
132
129
129
128
128
128
132
128
130
130
129
129
127
130
129
129
128
127
127
127
126
125
126
124
127
126
126
128
126
124
125
126
127
121
124
127
125
123
126
127
129
130
129
130
130
130
132
129
127
130
127
128
130
129
127
130
133
131
130
133
129
131
132
129
128
126
127
124
124
125
125
121
125
124
125
126
125
126
125
123
124
125
124
128
126
124
124
127
127
128
128
127
128
125
130
128
127
128
130
129
129
129
128
127
130
130
127
125
128
126
126
126
127
126
126
123
125
125
125
126
125
125
123
124
125
126
127
126
124
129
122
127
128
128
124
127
128
131
128
128
131
132
127
129
128
130
131
131
126
129
132
127
132
129
127
130
127
126
131
130
128
128
129
131
125
128
126
125
127
130
124
123
123
126
129
125
121
123
123
125
126
123
125
125
128
129
128
128
131
129
130
133
126
129
131
132
131
129
129
131
129
128
129
127
128
130
125
130
129
126
124
129
127
125
128
126
132
128
129
125
123
125
126
129
125
123
127
127
131
122
124
122
127
125
128
125
124
128
125
125
126
126
128
129
132
131
129
127
130
128
128
130
127
127
124
124
126
126
121
122
123
124
123
125
125
125
123
126
129
128
128
129
126
129
130
131
129
130
130
133
130
128
127
132
129
129
128
128
128
129
130
129
127
126
126
129
126
127
129
130
131
127
125
126
128
127
125
127
127
126
127
130
125
125
127
126
126
127
126
128
126
126
127
128
128
125
127
131
130
129
129
128
131
130
132
128
126
131
130
129
124
127
127
129
123
122
124
127
128
124
126
127
127
127
125
125
129
125
126
127
124
124
126
128
127
127
129
128
127
127
125
130
129
128
128
126
126
126
124
124
126
127
125
125
126
130
129
126
128
126
126
128
127
127
128
126
126
125
124
123
123
124
127
127
130
128
128
128
129
127
128
130
128
130
129
131
130
131
129
131
127
130
130
128
130
129
129
130
126
128
123
129
129
128
126
127
126
128
127
129
127
128
128
129
127
125
127
127
128
128
127
129
128
126
127
130
129
126
128
127
126
126
129
127
128
126
130
127
127
126
128
127
127
124
127
126
127
126
127
125
124
125
125
122
123
125
125
126
124
126
127
125
126
126
125
127
128
128
130
131
129
130
128
128
131
128
128
129
127
128
127
128
127
125
126
126
126
128
127
124
125
126
127
124
125
126
130
127
126
128
126
126
128
127
126
128
127
129
130
129
130
126
125
127
129
127
128
128
128
129
129
129
129
129
128
131
128
130
131
129
131
130
127
128
126
126
125
126
127
126
127
126
127
126
128
124
126
128
126
130
128
127
131
128
129
130
129
127
129
129
130
127
129
129
129
127
127
126
126
125
126
125
126
125
125
125
125
125
124
125
125
128
125
126
128
127
126
127
126
125
126
128
128
127
127
127
127
126
127
126
127
126
129
127
127
126
127
127
126
128
126
128
128
128
129
126
129
128
127
127
128
128
130
128
127
127
129
125
129
127
126
129
128
129
129
128
127
128
124
129
128
128
128
127
129
128
129
128
127
129
128
128
128
127
128
126
126
129
127
127
126
129
128
127
128
127
126
126
125
125
127
125
126
124
127
128
128
128
129
131
128
129
128
127
127
128
129
126
127
128
128
129
128
128
127
129
128
126
127
125
127
125
126
124
129
126
126
128
127
127
127
126
128
127
128
129
127
126
126
126
125
124
125
125
127
126
127
125
125
128
128
126
127
127
128
128
130
127
129
129
128
127
129
127
129
128
128
129
128
128
128
128
125
127
126
126
127
126
128
129
128
130
126
126
128
128
127
130
129
129
128
128
128
130
128
129
127
129
129
129
127
127
126
130
125
128
128
126
128
127
128
127
126
128
129
128
128
129
128
127
127
126
126
125
125
124
126
125
125
125
126
126
126
126
127
126
127
125
127
125
126
126
127
128
128
127
127
128
129
130
130
128
129
129
127
127
125
125
127
126
127
125
127
127
127
126
126
126
129
127
127
128
127
126
129
126
127
129
129
128
129
127
127
129
126
128
128
127
127
127
126
126
127
127
126
127
127
128
128
129
128
130
129
128
126
126
127
128
126
127
126
127
127
126
126
129
127
129
128
127
126
126
128
129
126
129
128
129
128
129
129
130
129
130
127
128
129
129
128
128
129
130
129
129
128
128
126
127
127
127
128
127
126
127
125
126
128
127
127
126
127
128
127
127
127
127
126
127
126
127
128
127
128
125
127
125
125
125
126
125
125
126
127
128
124
124
125
125
124
125
128
127
126
127
127
128
129
127
127
128
127
128
128
127
127
129
127
127
127
127
127
128
127
128
128
128
128
125
125
125
125
129
128
126
127
128
129
128
125
126
128
125
127
127
128
130
130
129
129
128
128
130
126
125
127
128
128
129
128
127
126
129
126
128
127
126
127
125
126
127
127
127
127
125
127
128
126
126
128
128
128
131
130
128
127
125
127
127
126
126
126
127
132
136
126
126
120
107
121
126
124
140
144
130
136
135
126
121
116
110
119
129
140
142
135
132
127
123
122
118
117
112
120
136
134
129
144
127
121
129
120
122
119
120
128
135
144
144
136
126
121
117
116
109
118
120
127
152
139
125
113
115
129
112
127
135
112
145
152
116
126
126
119
140
134
130
130
121
141
140
137
136
120
125
128
142
126
111
120
119
121
131
129
123
118
142
122
111
130
119
137
121
127
134
128
132
135
130
133
122
120
121
129
130
117
118
115
129
121
118
133
130
133
129
130
131
129
131
141
121
117
124
116
118
155
136
104
120
140
138
129
148
132
119
127
132
122
120
119
90
119
121
114
146
165
151
127
126
137
114
126
149
118
101
115
108
112
116
106
126
133
114
132
135
125
129
124
154
151
137
151
129
113
147
138
113
136
148
149
141
140
124
117
143
158
108
119
144
100
114
143
106
87
124
132
123
147
140
130
131
120
104
96
135
149
124
129
130
112
114
121
105
118
134
138
143
134
112
128
127
121
113
112
115
117
124
121
129
139
133
118
113
113
119
129
127
124
110
114
137
133
120
117
122
127
140
153
130
149
134
151
149
99
117
144
145
134
128
137
122
140
169
113
101
107
136
143
131
144
97
119
129
89
103
145
123
132
114
118
148
128
134
146
126
138
144
145
158
175
127
136
159
116
140
150
122
146
143
129
122
119
139
139
111
103
124
132
127
112
107
114
122
135
142
108
104
124
131
106
107
121
112
143
130
97
102
86
120
131
118
99
92
130
135
150
138
100
105
134
161
143
147
128
97
158
166
117
114
117
119
140
140
138
141
124
131
131
122
116
164
165
128
118
138
137
115
141
104
88
131
110
128
148
86
86
86
98
107
84
106
113
115
127
95
87
117
115
105
123
119
94
120
171
135
116
169
163
146
187
184
133
146
198
160
163
164
150
154
168
156
132
145
145
156
167
119
130
141
102
122
153
115
143
138
131
133
99
123
131
142
135
108
128
117
105
126
109
92
106
131
124
122
135
136
108
99
84
114
118
123
106
86
117
109
101
129
128
99
117
128
97
107
131
129
116
137
122
131
138
141
129
130
154
151
140
182
197
153
152
119
124
135
119
149
157
102
135
132
101
106
128
98
101
128
118
114
144
110
104
98
88
113
109
124
129
98
115
118
107
115
129
124
130
133
131
156
136
112
111
147
144
153
132
142
160
148
135
119
123
148
130
122
150
171
130
148
163
140
115
145
148
122
109
156
109
110
147
157
140
134
115
100
130
126
122
124
135
144
145
105
89
100
98
92
136
152
98
121
165
116
94
122
137
125
147
108
104
99
116
128
109
114
122
130
136
119
131
151
131
91
118
147
125
161
156
83
111
138
111
116
136
129
112
130
169
104
93
132
133
118
139
115
110
126
144
112
114
106
109
145
147
139
127
116
139
161
146
124
153
159
170
127
101
138
139
160
130
135
143
139
145
115
117
140
128
155
147
141
126
117
125
113
120
138
114
132
140
123
131
117
104
119
120
144
128
104
112
124
126
105
102
133
118
136
146
123
95
88
139
109
106
133
146
152
130
142
123
110
101
96
124
132
137
148
118
131
141
123
144
121
107
133
167
138
121
117
116
134
157
139
119
113
141
117
125
129
105
133
157
120
102
104
106
126
105
98
112
120
109
125
138
106
100
114
113
124
122
134
124
107
135
137
138
140
155
158
127
149
132
133
155
169
134
140
163
143
163
173
156
105
131
163
141
129
156
151
120
126
160
130
110
136
136
94
133
114
82
121
129
131
142
107
134
129
96
109
101
101
97
125
156
122
106
133
125
96
102
110
106
117
123
106
85
87
104
121
118
115
113
110
102
134
119
104
138
142
148
144
145
133
138
136
139
129
129
166
168
174
175
140
143
119
117
122
108
141
128
131
136
128
126
133
134
114
91
117
116
131
104
98
104
120
126
150
127
122
107
131
132
145
125
152
171
141
140
143
130
144
121
122
129
126
147
148
137
149
129
112
131
144
126
132
138
135
122
84
112
139
123
125
115
129
105
111
133
129
119
87
139
143
113
139
141
134
87
141
93
138
147
138
121
116
146
151
137
118
103
116
124
142
94
105
130
132
130
128
121
109
118
130
114
111
119
157
170
127
127
146
132
113
108
122
120
122
137
108
81
88
102
116
120
112
102
111
120
129
100
93
132
129
120
115
137
110
105
150
138
114
121
168
176
167
169
163
159
147
156
166
136
151
161
168
155
134
158
166
145
153
139
116
141
140
119
93
106
112
126
156
106
94
99
110
101
107
113
116
135
129
128
100
101
112
91
100
111
111
126
137
123
136
119
115
117
120
131
137
123
110
109
111
131
133
140
122
129
123
122
135
127
107
117
144
137
141
139
137
139
143
146
130
120
162
153
140
147
132
136
147
147
131
104
103
138
116
98
109
121
118
146
117
109
102
104
104
92
94
83
99
129
123
128
130
139
125
130
124
135
142
137
132
124
139
140
146
144
141
104
154
157
119
112
149
157
148
154
148
141
150
149
166
119
106
164
172
163
162
137
153
140
129
145
125
122
127
131
140
111
119
139
139
128
132
111
98
109
100
74
76
101
103
113
140
113
101
85
92
115
90
89
124
117
129
133
127
102
117
123
102
109
125
133
148
155
148
159
135
140
138
126
126
147
133
98
106
142
143
140
137
119
133
144
131
127
105
109
136
136
133
119
123
131
116
136
124
102
140
140
127
140
127
135
138
155
145
138
136
151
136
122
121
147
131
159
167
137
124
131
140
121
108
113
107
117
137
129
143
135
121
130
130
109
119
130
124
105
112
127
123
122
121
100
104
127
129
99
106
130
130
149
141
122
120
156
146
116
106
105
131
154
152
154
136
143
135
151
136
128
142
148
122
126
138
129
126
147
131
132
162
113
107
112
79
101
105
142
107
101
115
86
92
94
92
96
102
134
130
134
125
130
100
103
121
121
105
113
146
149
126
149
143
124
115
144
147
132
136
119
114
134
170
152
118
151
175
153
139
143
128
124
141
142
145
140
138
142
124
130
135
131
148
133
119
138
139
121
139
135
132
133
150
136
121
122
81
126
125
118
125
131
107
115
130
114
98
118
112
102
123
132
127
122
121
124
117
116
116
119
124
122
108
119
110
127
115
107
122
113
107
137
138
146
141
141
138
146
147
144
120
108
105
139
137
133
167
155
136
151
117
128
139
148
145
133
141
130
146
152
130
137
134
122
134
128
105
91
89
93
85
104
112
108
112
133
107
96
96
119
105
121
141
136
155
133
117
148
140
142
123
127
139
137
141
164
141
134
133
151
147
128
135
142
145
150
125
141
124
124
134
147
110
106
116
121
128
106
125
135
130
123
92
115
118
114
126
135
115
122
130
120
123
120
113
129
150
150
116
116
101
91
113
134
126
139
110
128
145
110
113
127
98
116
125
142
126
130
152
155
141
148
151
167
148
139
139
103
112
115
103
118
132
125
100
95
127
116
135
110
102
134
142
149
151
114
81
79
117
108
107
152
165
133
140
125
138
164
160
159
154
147
162
143
145
148
153
152
145
151
139
127
133
110
112
116
125
145
149
125
140
131
106
106
119
93
103
134
113
102
130
128
118
117
115
106
107
100
106
112
106
114
134
107
102
107
120
116
138
140
104
115
154
155
161
143
115
117
116
123
138
112
116
138
128
117
109
129
117
111
120
144
122
135
177
163
119
136
167
143
146
168
126
98
107
108
106
87
143
133
98
103
96
94
115
120
111
115
90
105
107
113
128
128
131
112
133
159
143
149
129
114
139
150
165
155
138
159
142
123
154
142
131
163
172
164
160
157
150
135
122
129
149
137
138
162
131
123
137
109
121
140
153
155
136
138
131
125
118
118
146
131
123
120
127
112
135
111
92
107
124
135
129
122
119
93
103
117
92
98
108
115
119
111
121
125
137
107
120
134
110
112
125
88
87
97
143
116
81
114
134
143
161
132
114
152
149
162
151
138
127
112
136
123
120
132
132
135
128
115
115
116
111
91
100
139
146
106
125
115
103
132
127
143
148
153
144
146
150
130
125
151
139
137
136
173
134
109
155
142
142
148
146
141
131
143
141
142
161
130
116
134
134
148
120
114
83
105
117
118
109
92
85
127
140
117
81
124
125
141
129
133
106
125
116
111
117
123
131
152
122
112
130
115
116
115
135
157
134
126
136
135
112
118
148
147
125
123
113
122
124
110
143
139
129
141
180
161
113
121
120
114
123
105
111
120
129
116
113
115
124
120
141
140
123
103
95
93
95
89
100
108
98
54
106
152
127
104
132
146
149
172
167
160
139
149
152
157
150
159
173
170
144
163
148
144
164
129
136
158
173
152
125
129
115
129
156
141
107
140
153
102
104
110
127
108
105
123
136
110
74
110
112
98
124
129
86
114
136
114
127
132
135
126
102
125
133
124
116
108
118
87
113
151
90
67
134
147
103
96
122
123
137
148
146
133
110
151
150
134
140
153
155
150
159
130
122
129
117
129
120
136
161
135
126
141
122
112
123
130
118
115
106
112
97
77
119
116
102
109
139
140
99
118
136
111
122
146
134
108
146
158
143
142
150
146
165
178
156
133
137
139
129
147
108
110
126
96
115
149
140
117
133
151
155
137
141
151
125
115
129
123
118
122
136
135
125
130
142
98
100
122
123
107
130
155
118
110
139
103
94
121
133
122
118
142
125
103
134
124
116
112
116
138
103
69
126
114
111
141
112
90
143
155
149
140
145
138
171
145
123
153
139
125
140
133
89
84
127
86
128
120
85
108
127
134
109
128
124
94
109
137
113
109
136
115
133
155
147
132
137
122
132
147
134
146
186
163
138
181
156
124
155
161
144
152
162
153
106
132
143
147
138
117
138
147
120
125
120
101
111
118
113
109
112
135
127
121
107
109
132
132
124
114
98
120
130
121
105
84
84
99
109
112
84
102
142
145
150
145
130
129
138
123
118
126
125
126
133
147
143
133
106
94
135
122
125
147
164
137
156
173
136
108
132
134
120
143
148
105
116
131
132
135
120
120
144
102
86
119
107
95
113
84
81
114
138
123
113
111
114
144
154
127
136
137
135
162
154
124
111
124
134
137
140
109
110
147
158
152
148
159
148
140
147
160
136
128
142
150
144
146
164
140
121
120
105
136
112
116
142
145
124
150
146
102
118
138
102
113
144
128
90
130
117
123
120
123
113
109
125
116
107
98
99
113
100
112
122
121
107
115
117
116
125
111
105
122
127
143
142
124
116
101
120
142
122
88
113
144
155
149
144
152
124
147
141
109
125
150
132
135
143
145
135
139
119
85
106
121
96
127
120
123
130
147
143
115
103
135
123
130
150
120
116
154
159
160
148
143
162
131
124
148
138
135
127
128
122
123
156
161
134
129
134
142
151
137
135
116
128
139
139
110
100
105
104
121
124
89
78
119
133
146
122
127
131
107
136
131
113
111
120
135
138
130
138
156
124
111
116
114
103
111
120
129
120
137
141
131
107
123
127
95
144
131
107
131
139
138
142
140
150
132
128
150
145
125
100
103
120
103
113
125
117
123
127
120
113
125
110
93
117
134
107
131
117
98
83
99
128
91
81
111
124
155
164
149
147
159
185
142
129
153
173
157
157
165
164
152
162
134
119
140
135
148
141
128
152
150
141
141
118
110
129
119
126
74
94
138
123
133
136
122
115
110
114
115
98
112
112
102
113
114
119
131
130
116
119
139
122
122
136
115
120
141
132
105
115
117
116
134
108
87
97
124
124
157
134
126
145
118
142
158
142
134
141
166
164
134
149
148
122
121
108
109
106
99
111
113
119
132
135
101
105
132
106
98
108
103
105
125
137
125
116
149
141
118
156
144
144
138
124
126
136
136
140
143
136
149
151
141
133
117
124
140
145
158
148
139
150
141
118
119
105
82
97
113
121
136
118
125
124
125
149
148
112
118
144
154
143
140
165
143
141
160
134
128
130
150
147
119
123
166
142
133
137
130
138
126
123
88
82
121
120
121
117
110
120
108
107
102
101
110
102
93
106
109
96
109
113
102
122
120
89
92
124
122
127
141
147
117
112
139
135
120
111
87
103
120
119
154
132
123
146
113
125
149
132
122
155
150
147
141
136
147
156
155
177
177
162
171
149
131
159
167
135
143
115
118
158
243
192
128
77
71
65
82
83
55
65
83
75
61
53
77
78
83
89
96
110
118
133
141
121
138
156
153
162
144
153
153
173
170
175
170
173
174
146
161
207
156
183
206
197
191
197
196
180
192
175
164
149
160
173
158
157
149
122
134
131
113
113
103
92
99
92
92
101
94
90
87
79
73
63
59
62
72
62
58
52
52
49
28
73
64
32
54
42
29
45
44
56
27
44
77
64
62
71
94
112
157
151
130
138
136
124
146
148
162
161
155
137
144
162
163
186
189
166
178
191
214
208
182
174
167
179
198
168
177
188
206
204
187
183
194
196
203
211
200
201
199
210
187
184
205
176
182
185
136
149
172
163
142
145
131
119
141
142
120
96
93
95
108
96
71
91
80
101
110
70
79
79
98
94
77
61
68
92
96
91
79
55
77
82
81
63
78
75
78
95
96
83
79
84
81
79
58
81
91
47
67
81
62
68
106
81
61
62
76
70
73
102
111
96
136
158
142
111
137
162
145
125
116
100
130
173
159
135
135
160
172
186
177
161
182
169
188
165
154
175
186
174
179
178
197
206
177
173
183
190
232
215
209
195
207
191
188
208
186
195
216
192
189
182
168
185
158
131
151
144
145
170
145
127
140
144
144
113
102
125
124
77
82
85
58
78
93
81
67
84
84
77
80
61
71
79
63
83
68
63
83
82
59
77
70
88
86
111
77
95
92
110
93
90
128
116
99
115
108
109
108
99
124
120
106
130
165
148
149
136
142
158
168
155
142
120
147
146
120
121
125
123
126
108
115
136
140
133
131
137
136
141
137
117
115
109
96
101
122
119
121
154
165
160
156
140
137
152
141
157
167
160
154
170
156
142
152
125
113
158
116
123
124
102
144
127
148
140
124
139
97
119
103
119
161
144
98
122
107
132
114
110
109
122
112
104
124
109
127
135
116
104
115
118
124
115
122
129
109
125
144
145
140
142
127
110
118
108
138
146
133
130
135
159
141
122
108
117
147
135
171
171
136
179
173
150
150
170
144
136
134
140
141
143
124
132
120
123
132
146
131
138
132
120
130
126
131
116
105
121
128
118
112
128
102
123
164
139
129
143
145
141
129
118
119
125
117
126
147
143
111
155
139
127
135
132
115
135
131
142
136
114
111
124
139
112
131
151
107
109
120
119
107
122
119
113
131
121
117
122
104
85
121
106
112
103
81
93
95
114
114
106
112
84
89
117
107
95
127
94
130
101
75
106
122
131
113
117
109
101
133
116
116
113
121
133
120
108
139
133
132
160
116
122
133
144
152
134
133
116
124
123
126
140
106
126
168
145
138
153
131
116
135
143
126
146
111
117
148
108
127
169
144
149
164
157
160
156
151
156
149
171
157
157
144
132
162
154
124
118
134
146
150
140
148
145
137
137
130
138
145
137
122
123
117
115
116
101
103
114
103
112
116
89
92
129
120
103
121
105
112
148
115
112
126
97
110
137
131
122
141
165
140
120
132
138
138
143
135
143
153
141
131
131
128
114
132
121
106
104
102
144
125
139
142
143
143
109
124
124
119
94
98
117
113
78
108
120
134
136
124
120
110
128
111
117
115
96
101
124
97
78
123
108
77
116
125
121
143
158
146
137
143
150
122
143
145
132
148
157
155
164
162
152
132
147
136
128
168
121
124
183
140
116
115
142
122
142
134
123
125
128
149
124
119
154
127
129
122
119
109
136
114
87
117
132
126
141
151
97
127
147
107
119
138
114
102
136
123
103
135
109
100
112
106
94
85
108
110
114
115
114
106
122
158
148
115
118
136
135
145
119
144
154
147
147
128
114
127
139
147
123
147
167
155
148
138
125
123
130
116
112
96
98
147
132
129
112
137
147
147
122
124
137
131
130
149
136
117
154
137
138
140
159
145
135
129
144
137
142
141
141
131
128
132
121
117
113
94
117
112
114
132
124
122
116
119
122
100
85
119
127
115
125
125
129
128
138
126
114
118
118
121
134
121
143
146
119
125
109
124
129
135
119
116
115
130
148
125
132
129
124
129
109
108
116
114
103
132
131
120
143
152
155
124
139
151
116
122
120
112
121
123
112
115
113
117
122
110
103
103
111
108
114
125
108
98
102
120
129
116
114
115
107
142
144
132
132
156
157
146
158
150
140
153
164
159
165
163
142
161
144
133
164
142
132
122
127
155
157
142
120
147
178
160
125
131
124
114
123
145
98
81
123
142
107
123
127
119
121
102
115
129
130
128
128
112
146
133
106
115
103
80
103
120
117
108
122
141
140
116
113
104
89
107
120
134
118
116
111
133
148
133
118
117
128
142
158
156
142
146
138
140
112
93
127
124
123
91
100
124
132
135
135
119
126
146
136
122
94
113
115
111
123
92
111
132
143
148
123
138
123
130
139
149
153
142
166
147
129
148
142
109
113
121
146
135
130
131
140
144
146
152
161
124
134
128
130
151
136
129
121
145
139
137
121
102
107
138
136
137
136
121
134
147
126
116
134
119
104
81
110
130
125
126
125
105
132
166
156
96
102
128
123
121
130
92
90
129
132
115
115
119
119
107
126
121
137
147
141
145
143
154
143
132
111
100
126
116
119
110
122
132
146
129
112
115
90
119
129
128
139
127
115
125
132
129
126
98
99
123
129
144
140
119
127
150
140
111
121
146
139
127
132
140
138
155
159
146
128
169
167
133
135
129
129
135
140
143
123
129
154
148
142
138
132
121
111
127
132
140
133
133
124
129
137
116
94
86
114
115
120
103
107
109
135
138
122
122
116
102
122
125
132
130
131
123
118
138
157
114
93
103
130
149
121
106
128
137
134
141
112
108
105
93
118
125
132
133
137
130
136
149
156
147
96
116
140
119
127
124
89
126
125
132
135
114
121
103
116
123
118
133
122
133
128
144
129
108
99
99
113
118
126
131
148
141
163
164
141
141
122
137
145
145
154
161
145
148
148
146
161
137
114
128
148
153
149
137
113
138
142
124
130
101
102
103
100
138
111
96
132
128
122
126
160
107
116
120
127
130
115
120
126
116
133
141
118
126
130
123
110
136
144
142
139
126
118
137
131
112
88
101
117
112
110
95
97
120
145
148
136
118
117
116
144
151
114
121
134
121
126
137
148
100
94
121
148
142
140
111
121
141
147
143
126
94
103
100
112
114
102
110
128
119
121
145
156
160
148
129
150
151
139
146
136
120
137
137
151
144
129
133
134
128
137
135
144
147
146
154
150
148
108
98
119
103
131
105
111
132
133
135
139
121
111
118
133
127
116
136
146
129
147
112
109
144
120
94
121
137
123
129
124
108
135
134
141
120
103
96
112
124
111
94
95
124
121
128
138
138
118
123
119
129
130
114
124
141
142
135
133
137
120
142
136
118
109
135
148
162
134
122
138
140
129
114
107
113
130
112
93
93
108
110
136
116
109
107
101
134
110
120
142
144
134
152
155
143
131
141
157
147
144
148
133
154
156
172
155
110
119
144
134
120
123
116
120
138
126
129
129
146
150
131
118
139
126
110
114
116
112
103
133
141
112
123
120
129
109
112
130
132
117
143
137
134
116
107
114
99
108
121
123
122
127
138
139
128
124
125
102
117
103
115
141
131
137
125
112
122
152
119
123
136
128
140
131
116
135
146
144
128
107
116
106
110
119
101
121
134
121
125
147
149
120
122
109
117
113
95
101
126
134
120
125
132
127
156
150
129
128
160
188
175
148
141
146
141
141
126
109
128
136
121
125
126
128
150
149
126
131
137
126
125
135
96
112
152
127
120
132
131
122
142
129
125
130
116
118
120
142
140
140
120
112
134
138
98
107
116
97
120
134
120
129
143
151
152
134
123
138
124
100
101
119
100
105
125
134
108
127
146
127
109
116
132
141
135
136
133
137
122
119
108
101
98
129
115
113
117
132
143
121
139
149
94
99
123
116
129
132
126
112
105
129
121
119
128
135
123
117
117
135
150
154
154
152
147
159
162
135
128
119
123
147
146
145
149
168
172
156
140
126
125
114
119
112
127
123
107
116
132
133
118
125
123
117
139
159
150
117
118
129
125
109
106
108
100
130
127
111
113
124
127
119
125
127
104
125
126
96
126
150
127
129
137
137
129
130
129
112
103
92
124
128
128
150
112
116
152
156
130
114
108
117
143
136
121
119
139
146
156
145
117
127
145
127
114
112
108
118
109
115
128
109
113
131
115
89
94
124
130
124
117
136
125
127
142
103
112
141
143
132
126
152
133
147
150
135
117
118
148
153
139
149
145
142
150
160
143
149
145
133
127
114
118
146
161
131
126
138
134
146
131
100
106
119
103
107
133
108
124
166
148
124
135
131
100
123
128
115
119
135
122
112
121
129
120
119
125
120
129
146
133
125
111
114
115
95
97
110
110
108
116
127
120
136
135
117
120
130
115
116
119
122
131
140
134
132
142
139
116
130
119
116
120
129
129
132
133
139
131
103
100
101
109
129
107
107
113
119
138
118
128
136
141
149
141
145
147
163
164
148
149
162
149
141
122
104
126
148
148
156
160
150
142
147
143
123
115
120
111
119
142
135
117
114
120
121
106
101
106
98
109
118
117
114
133
145
128
126
130
117
96
112
114
118
133
142
145
139
131
138
141
134
126
130
125
118
126
129
118
122
126
118
119
124
117
120
131
145
145
142
138
133
134
129
124
107
97
105
125
130
128
128
122
132
142
135
130
115
116
111
108
110
120
122
114
119
113
106
111
115
108
106
113
127
137
142
153
146
135
144
145
141
128
134
141
128
140
140
140
146
144
142
147
141
122
127
137
133
137
136
132
126
125
118
113
116
119
121
127
135
146
150
139
127
118
120
135
134
122
117
127
134
146
147
131
124
129
132
137
122
117
122
126
130
122
121
119
114
112
107
108
113
118
105
116
122
116
120
128
117
114
123
129
125
125
116
121
125
125
132
133
112
122
133
130
129
135
137
139
139
135
124
122
116
113
110
110
122
122
120
127
129
125
123
122
124
122
128
130
126
124
132
142
143
138
141
143
144
146
152
147
142
143
141
135
134
131
127
128
124
123
128
131
136
128
121
128
131
127
123
122
125
126
136
141
136
135
131
126
129
124
121
120
116
119
124
127
127
123
122
121
120
122
120
119
117
121
128
131
128
123
121
124
124
124
125
124
126
124
122
123
128
128
128
127
126
128
130
130
133
137
135
129
127
124
120
116
115
116
119
120
124
130
133
134
133
127
122
119
122
119
115
117
118
117
118
123
124
119
122
118
115
117
119
124
122
121
129
138
139
141
140
134
134
136
133
131
133
136
144
144
139
143
141
136
137
138
135
140
147
147
146
145
144
139
133
127
126
128
127
132
134
136
136
136
132
123
118
116
111
116
119
117
119
121
121
121
122
123
121
114
116
118
116
117
119
120
121
125
124
123
119
117
118
118
115
119
122
123
127
129
129
128
126
125
123
123
126
129
130
131
133
135
135
134
133
130
126
131
133
133
136
136
137
132
131
128
123
123
122
123
123
124
129
132
133
132
129
123
118
120
119
120
120
124
127
130
131
129
128
126
126
126
125
126
130
127
127
131
130
126
129
129
126
129
132
131
132
134
137
133
130
132
132
132
131
130
129
131
134
134
131
131
134
137
135
130
129
130
131
132
132
129
132
138
137
133
131
128
124
127
128
126
124
127
130
125
125
127
120
119
120
118
117
120
123
123
121
120
120
120
120
120
120
118
120
123
122
121
121
122
123
120
122
125
125
129
130
129
124
125
127
124
123
122
126
125
123
126
122
123
127
127
125
125
129
129
130
129
130
130
131
134
134
131
134
135
135
132
133
130
132
132
133
131
129
129
131
133
135
135
134
131
130
130
131
130
128
127
128
132
135
134
134
134
133
134
132
131
130
130
127
128
128
126
125
124
124
128
127
127
128
126
127
127
124
125
126
123
123
124
122
121
121
122
121
125
125
127
125
123
124
125
124
125
124
125
126
129
128
126
128
127
125
128
125
125
125
125
129
128
128
130
130
125
122
122
124
123
123
123
123
125
125
124
120
126
122
128
126
121
127
128
127
131
126
129
130
129
127
128
124
129
131
125
134
127
130
133
131
127
128
126
126
124
128
129
127
126
131
131
131
128
130
128
130
133
129
131
132
139
134
134
132
132
130
130
130
127
127
131
131
131
132
131
130
126
129
128
127
127
128
128
126
129
128
126
127
125
125
125
127
129
129
129
125
127
126
125
122
121
122
121
123
124
123
124
123
124
126
124
123
124
123
124
125
126
127
124
127
128
126
126
129
127
125
127
126
125
128
125
128
129
127
128
127
124
125
128
126
126
125
129
129
127
128
128
129
127
127
127
126
127
126
127
128
127
127
126
125
127
128
127
129
128
130
131
130
128
129
132
130
127
130
130
130
130
131
129
131
132
131
131
127
128
130
127
127
127
126
128
127
127
125
128
128
128
127
126
126
127
127
126
130
127
127
128
127
128
127
126
126
124
125
126
127
125
129
129
128
127
129
126
128
127
123
125
128
127
125
127
126
127
129
128
128
129
126
127
128
126
128
128
126
124
125
126
126
124
124
125
126
126
127
127
126
127
128
127
126
127
126
126
126
125
126
127
128
129
124
126
127
124
124
125
125
126
128
128
128
127
127
128
127
127
126
126
128
129
129
128
129
131
129
129
129
128
128
129
130
128
129
129
129
129
127
127
128
128
128
127
127
129
129
128
129
129
129
130
130
126
128
129
128
129
131
130
127
128
128
128
127
126
125
124
125
126
125
125
125
128
126
125
126
125
126
126
127
126
127
126
126
126
127
127
126
126
125
126
125
126
126
127
128
128
129
127
127
127
126
127
127
127
128
129
127
129
129
128
128
127
127
128
129
128
128
128
127
127
127
126
125
126
125
126
126
126
127
127
127
128
128
126
128
127
126
126
127
125
126
128
128
129
129
127
127
126
125
126
127
125
128
127
127
127
128
128
127
127
126
126
127
129
129
128
129
129
129
129
128
128
128
129
128
127
128
127
127
127
127
126
126
125
127
127
125
127
127
126
128
129
126
128
127
126
127
127
128
128
129
128
128
130
129
127
127
126
125
126
125
125
126
126
126
127
126
127
126
126
126
126
126
127
127
127
126
127
128
129
128
126
127
127
126
127
127
127
128
128
128
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
128
126
125
126
127
127
126
126
127
126
126
126
126
126
127
127
128
128
127
128
128
127
126
127
126
127
128
128
128
128
127
127
126
127
128
127
126
127
126
125
127
128
126
127
126
126
127
128
128
127
127
128
128
128
128
129
128
128
129
128
127
128
128
127
127
128
127
127
127
127
128
127
127
128
127
127
128
128
127
127
128
127
128
128
127
127
129
129
128
129
129
127
126
127
126
126
126
127
126
126
127
126
126
127
126
127
127
126
127
127
126
126
127
127
127
127
127
127
128
127
127
127
127
128
127
127
126
126
126
126
127
126
126
127
127
126
127
128
128
128
127
127
128
129
130
129
127
127
128
127
129
128
125
127
127
126
126
125
126
127
126
126
127
127
127
128
128
126
125
126
127
127
127
128
128
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
127
127
127
126
127
127
127
128
127
128
129
128
128
128
127
128
128
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
127
127
128
128
127
128
129
129
128
128
127
127
127
127
126
126
126
127
127
126
126
126
126
127
127
126
127
127
126
126
127
126
127
127
127
127
127
127
127
128
128
127
128
128
128
127
127
127
127
128
126
127
127
127
128
128
127
127
128
128
128
129
128
126
127
127
127
127
126
126
127
127
126
127
126
126
126
126
126
127
128
126
127
127
126
126
127
126
127
128
128
127
127
126
127
127
127
127
126
127
126
128
127
127
126
125
126
127
126
127
127
127
126
127
129
128
127
128
129
128
128
128
128
128
127
127
128
127
127
128
127
128
127
127
126
127
127
127
127
127
127
128
127
127
127
127
126
127
127
128
129
130
128
128
128
127
128
127
127
126
126
127
128
127
127
127
127
128
127
126
126
127
127
127
127
128
128
128
129
127
126
127
126
127
128
128
129
128
128
127
127
127
127
127
126
126
126
127
128
127
128
127
127
127
128
126
127
129
127
127
128
128
127
128
128
128
127
127
127
126
126
127
127
126
127
128
127
127
128
126
126
127
127
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
126
126
126
127
126
126
127
127
126
127
128
127
127
127
127
128
128
127
127
128
128
129
128
127
127
127
128
127
127
127
127
126
127
127
127
127
126
126
127
127
128
127
127
127
127
128
129
129
128
127
128
128
127
127
126
127
127
127
127
127
127
126
127
127
127
126
127
127
127
127
128
127
127
127
128
128
127
127
127
128
127
128
129
127
127
128
128
127
127
126
126
127
128
127
128
127
127
128
128
127
127
127
128
128
127
128
128
127
127
128
128
127
127
127
127
126
126
128
127
126
127
128
128
128
126
127
128
127
127
128
128
127
128
127
128
128
128
127
127
127
128
128
128
127
127
127
128
128
126
126
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
127
127
128
128
128
127
126
127
126
127
128
127
127
127
126
127
127
127
127
127
127
127
128
127
127
127
128
128
129
127
128
128
127
127
127
126
126
127
127
126
127
127
127
127
126
126
127
128
127
126
127
128
128
128
128
127
127
128
127
127
127
127
127
128
127
127
127
126
126
127
127
127
127
126
127
128
127
127
127
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
126
127
127
127
128
127
128
128
127
127
128
127
127
128
127
128
127
128
129
128
128
128
128
127
128
128
127
127
128
129
128
126
126
126
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
127
127
127
127
126
127
128
128
128
128
127
127
128
128
128
127
126
127
127
126
127
127
127
127
127
127
126
127
127
126
127
128
127
127
127
126
126
128
127
127
127
126
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
128
128
128
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
127
127
128
128
127
127
128
127
127
127
127
127
127
128
127
127
126
127
127
127
127
127
127
127
126
127
127
127
127
128
128
128
128
127
127
128
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
128
128
128
128
127
127
128
127
128
127
127
128
128
128
127
127
127
127
128
128
127
127
127
127
128
127
128
127
128
127
127
127
126
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
127
127
127
126
127
128
128
127
127
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
128
128
127
128
128
127
128
127
128
127
127
128
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
128
128
127
128
127
127
128
127
127
127
126
127
127
128
127
127
127
128
127
127
127
127
127
127
128
127
128
128
127
128
127
127
127
127
127
127
127
128
128
127
128
127
127
128
128
126
127
127
127
128
128
127
127
128
128
128
127
126
126
127
127
128
127
127
127
126
127
127
126
126
126
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
127
128
128
128
128
128
127
128
127
127
127
126
127
128
127
128
128
127
127
127
126
126
126
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
127
128
128
127
126
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
128
128
128
127
127
127
128
128
127
126
127
128
127
128
128
127
127
128
127
126
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
126
127
127
127
127
127
127
127
127
126
127
126
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
128
128
127
127
127
126
127
127
127
127
127
127
126
127
127
128
127
127
127
127
128
128
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
126
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
127
127
128
128
127
128
127
127
127
128
128
128
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
128
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
127
126
127
127
127
127
127
127
126
127
127
127
127
127
127
127
128
128
128
127
128
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
128
128
127
127
128
127
127
127
127
128
128
127
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
127
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
128
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
128
127
127
127
128
128
128
127
127
127
127
127
128
127
127
128
127
127
128
127
128
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
128
128
127
128
127
127
127
127
128
128
127
127
127
127
127
127
126
127
127
127
127
127
127
126
126
106
83
106
132
142
151
198
176
217
194
145
108
99
88
94
90
90
101
98
51
12
67
78
78
148
134
192
196
148
152
129
125
147
235
101
129
161
177
209
109
134
162
130
111
165
109
151
162
167
130
81
112
140
132
88
130
116
93
57
57
116
98
104
96
86
107
102
105
78
56
61
94
108
115
122
151
167
178
180
172
174
184
205
219
197
162
170
193
170
183
189
155
180
154
106
95
103
98
86
103
113
93
90
69
73
92
56
91
77
67
57
102
123
102
94
105
113
96
130
154
177
163
171
152
153
169
165
185
181
174
171
191
173
128
150
149
132
119
138
138
156
136
102
74
80
90
63
59
97
81
74
69
53
61
39
55
116
111
92
109
146
158
161
175
167
174
178
181
177
181
193
219
208
189
168
153
155
175
175
193
181
139
85
99
76
68
110
70
84
84
56
81
115
107
106
84
73
107
126
151
139
117
108
133
120
113
118
132
112
127
136
158
162
173
170
184
175
166
164
162
178
190
174
142
137
143
143
140
138
140
110
99
119
83
77
74
57
61
53
81
78
62
78
77
128
130
121
140
123
139
182
155
135
153
158
167
159
147
167
205
180
132
141
157
155
128
101
123
115
132
118
143
110
121
106
119
128
90
94
106
133
135
141
112
121
108
122
108
133
104
128
122
126
94
121
108
98
125
132
128
119
157
127
156
146
159
174
150
178
164
158
161
145
123
128
121
131
124
104
99
127
124
110
105
102
99
80
84
73
68
73
111
126
104
122
127
117
148
152
156
158
147
148
169
177
161
134
157
145
157
138
147
165
152
150
154
132
141
149
113
105
121
133
132
130
112
103
118
123
120
82
110
96
116
105
114
100
96
121
84
112
80
112
107
116
104
119
134
145
130
151
149
175
166
170
159
167
168
193
163
168
173
144
149
159
140
162
131
88
110
101
97
91
87
90
80
76
72
93
81
82
90
54
102
101
106
124
112
105
111
119
111
147
174
151
159
153
141
144
145
134
149
168
149
122
167
144
159
165
154
166
146
115
167
144
144
136
142
140
144
131
103
111
119
101
118
93
84
72
76
89
64
70
82
96
87
88
92
115
109
153
133
141
128
154
159
159
143
180
174
154
172
174
177
167
195
172
181
171
145
159
143
132
137
127
106
113
140
118
90
94
85
76
83
95
84
83
79
108
101
89
95
98
106
112
118
115
120
119
147
139
132
175
152
151
138
161
147
164
164
140
152
167
173
153
143
153
145
134
126
132
149
116
131
104
133
111
109
114
91
109
94
103
104
101
99
90
105
108
95
113
115
100
118
109
118
114
139
126
137
149
132
146
149
149
158
143
145
142
156
148
144
141
163
136
158
154
157
152
152
153
126
141
115
119
104
118
131
114
111
116
108
104
114
124
123
104
100
99
103
118
118
114
113
122
116
139
128
123
134
129
131
138
149
128
148
156
154
156
143
138
134
134
144
132
128
130
115
128
116
116
127
115
116
122
117
122
91
105
113
101
124
123
106
129
108
139
143
148
144
147
141
142
155
133
142
119
130
127
120
122
122
124
129
123
106
112
116
119
126
111
113
150
133
123
126
134
134
136
132
126
135
119
134
118
129
119
105
134
119
119
135
125
105
126
127
120
131
121
144
134
138
136
142
142
145
142
142
157
151
142
147
138
139
134
117
125
109
120
117
111
95
105
106
98
110
108
110
108
106
116
114
125
117
125
132
136
138
125
141
142
148
140
132
140
136
142
138
135
144
126
133
135
130
133
122
128
126
128
120
126
129
111
125
121
121
117
132
120
128
125
124
121
126
121
118
114
114
116
122
108
111
114
121
124
112
114
123
126
128
127
145
143
152
144
144
157
149
149
148
144
135
138
140
134
134
128
124
129
118
125
115
110
115
119
112
116
104
110
114
123
120
117
119
116
114
117
110
125
130
139
141
133
140
139
145
148
147
143
142
140
140
139
145
126
135
119
118
134
128
133
130
122
125
145
119
119
113
111
136
109
109
116
116
106
110
101
113
109
124
122
110
127
137
118
133
128
137
153
127
138
144
144
149
150
151
146
153
157
150
147
140
133
137
125
112
118
121
113
114
116
115
107
112
117
116
113
110
102
112
114
122
119
118
127
131
131
130
130
136
136
130
142
138
130
136
125
127
139
129
132
126
131
138
137
134
141
133
132
126
127
120
125
122
122
118
113
117
125
121
121
117
127
133
123
122
128
125
121
120
123
134
141
137
134
146
128
137
136
124
135
135
136
132
128
135
122
120
121
123
110
123
127
118
123
121
123
128
124
127
121
118
123
121
124
124
117
116
126
116
122
126
133
131
131
137
125
132
129
126
142
130
122
128
124
131
148
136
131
128
137
142
139
132
135
131
126
122
127
128
125
117
118
121
122
119
119
127
122
133
121
117
123
129
129
122
124
128
124
120
127
121
125
131
126
128
129
141
133
128
128
128
126
137
121
124
129
123
131
129
124
134
137
131
132
129
136
137
122
113
127
136
133
121
117
124
128
123
124
115
125
115
124
121
128
121
119
130
133
126
117
128
125
128
128
130
135
142
120
135
126
130
128
135
122
126
127
122
123
128
133
125
128
114
128
129
129
127
123
123
134
130
129
131
130
129
124
128
127
131
123
127
123
128
128
131
130
132
133
133
126
125
127
130
127
123
132
127
127
127
125
127
125
121
117
127
130
127
120
122
126
131
117
125
119
124
129
129
117
127
136
133
130
130
131
137
141
136
131
128
143
132
131
124
130
130
131
134
120
130
126
127
120
126
125
129
119
123
120
121
119
123
115
120
126
126
120
120
112
124
125
122
125
130
128
133
126
133
137
130
136
134
136
131
133
131
136
135
129
129
131
131
138
126
130
126
125
130
125
128
126
128
120
110
118
125
125
128
125
124
130
127
122
127
131
126
131
128
120
130
127
130
139
123
126
127
131
126
125
127
124
132
126
119
125
124
126
127
129
130
131
131
134
131
132
132
134
134
131
128
126
128
131
131
127
126
128
131
123
120
126
123
120
122
124
119
121
126
121
129
126
128
128
126
125
128
134
128
131
131
125
129
135
125
125
130
131
129
120
128
124
128
125
123
130
129
126
129
131
122
126
132
124
130
133
132
129
131
130
124
133
131
125
119
130
126
120
123
125
124
120
120
124
118
128
118
122
122
118
128
125
125
127
126
129
133
135
127
134
133
134
134
138
135
137
131
138
134
136
139
130
133
129
128
129
125
131
128
129
122
127
126
126
115
120
118
114
114
117
115
123
115
122
130
124
123
120
127
128
128
125
128
129
131
128
130
136
138
137
136
133
134
136
137
134
135
129
133
131
128
128
125
126
122
130
124
127
125
124
127
125
125
125
122
122
121
125
127
122
125
129
123
120
125
123
124
121
130
122
124
127
120
121
132
126
130
123
126
128
130
135
129
132
129
138
129
137
133
133
134
135
132
130
131
131
132
134
127
126
124
131
118
119
126
123
122
124
124
122
123
120
126
118
126
122
123
127
122
127
128
125
126
135
128
127
131
131
130
128
130
130
131
129
132
129
129
131
132
126
134
129
132
127
127
131
127
130
127
123
124
129
121
124
124
126
121
125
122
126
121
123
124
127
124
126
122
122
134
125
128
125
128
131
127
127
130
127
130
129
132
129
130
131
129
133
125
128
129
126
131
125
129
129
126
127
125
125
125
127
123
124
125
120
124
122
125
123
127
127
127
126
130
127
128
127
130
129
128
127
129
131
129
129
127
132
128
125
129
128
127
130
128
129
128
128
126
128
130
129
127
126
129
129
129
125
130
124
125
128
127
122
122
127
128
127
128
121
131
124
125
126
127
127
128
129
127
128
130
130
130
131
129
130
126
129
125
128
129
127
129
125
126
129
130
120
131
125
126
122
128
125
129
128
128
129
130
129
129
129
126
127
131
125
127
127
125
127
125
123
125
124
124
126
125
124
128
128
123
124
129
126
128
126
127
130
131
128
126
133
128
129
129
129
126
129
127
123
124
124
123
124
123
124
125
125
125
124
127
127
127
127
131
130
130
131
131
131
130
132
131
128
129
129
131
131
128
130
129
128
125
127
129
127
128
127
126
128
125
128
125
125
128
124
126
126
125
123
126
125
128
127
124
126
128
127
126
130
126
130
127
129
129
129
130
129
131
131
134
132
131
134
130
132
131
130
130
127
127
130
129
125
124
125
124
123
125
122
120
123
124
124
123
125
125
125
125
124
126
125
123
126
124
125
125
126
123
128
127
128
124
127
130
131
130
128
130
129
131
129
128
129
129
126
127
127
130
129
130
129
128
126
127
130
126
129
126
125
126
126
123
124
122
126
125
127
129
129
127
128
128
126
127
129
128
129
130
128
132
128
131
129
129
128
132
127
128
127
129
131
127
126
125
128
128
127
129
128
127
128
127
128
127
128
129
129
126
126
125
127
128
125
128
125
127
126
129
125
128
127
127
126
125
128
125
126
126
126
128
129
125
129
130
128
128
127
126
128
126
128
127
124
128
126
126
124
126
125
124
129
126
126
128
126
125
127
125
127
129
127
128
128
127
126
128
127
129
127
127
128
130
123
128
126
125
127
127
126
128
127
126
128
125
127
127
126
128
128
128
128
128
128
130
127
128
129
127
128
130
129
130
129
129
126
127
128
128
128
128
130
129
127
127
128
127
128
130
129
127
127
128
129
128
127
127
125
127
128
126
127
126
128
128
126
126
128
127
127
127
126
128
130
126
129
129
130
128
127
128
130
128
129
126
127
128
128
126
126
126
124
127
127
125
126
127
125
125
126
126
125
126
124
126
126
126
126
125
126
128
126
126
127
127
127
127
127
127
126
128
127
128
127
128
127
129
127
128
129
128
128
128
128
129
126
127
128
126
128
128
128
125
128
126
127
127
126
125
130
125
125
126
127
126
126
127
127
129
126
128
126
127
130
127
128
129
128
129
130
128
129
128
129
128
129
127
129
129
127
127
129
128
128
127
129
129
126
129
127
125
123
128
125
126
127
128
126
128
126
127
127
129
127
128
128
128
125
126
126
128
126
127
128
126
128
127
127
127
128
125
127
124
127
127
125
126
128
127
127
129
127
130
127
127
128
128
127
128
127
126
127
124
125
125
124
124
127
124
124
126
126
126
127
127
126
129
128
130
129
129
131
130
128
127
130
128
129
127
127
129
129
127
127
127
128
126
126
125
126
126
127
126
127
126
126
129
128
129
129
128
128
130
128
129
128
127
128
128
127
127
128
126
128
127
127
128
128
127
127
129
126
127
126
129
127
127
127
130
127
130
128
127
127
127
128
126
125
126
126
127
126
125
125
127
126
127
126
127
127
126
127
126
128
127
127
129
127
127
127
128
129
130
128
129
129
130
129
126
127
127
127
127
126
124
127
125
125
126
126
128
126
128
125
128
128
127
126
127
127
129
127
127
128
127
126
126
127
127
127
128
127
128
127
126
126
127
127
128
127
126
129
128
130
128
129
127
127
127
126
129
125
128
128
128
127
128
126
128
129
127
129
125
128
127
127
130
126
126
128
128
126
126
129
127
129
127
128
130
127
129
128
124
130
127
127
128
125
128
127
127
126
128
127
127
127
126
126
128
126
127
126
126
127
128
126
128
127
128
126
128
129
126
128
126
129
127
126
127
127
126
125
128
126
127
126
126
127
126
127
128
126
126
127
127
127
128
127
127
129
126
128
126
127
128
127
127
127
127
128
127
128
126
128
126
129
126
127
129
127
127
127
127
128
129
126
129
126
127
127
127
126
126
128
127
127
127
128
127
128
127
128
129
126
129
126
128
129
129
128
127
129
128
129
127
128
128
128
126
127
126
127
126
127
127
126
128
127
126
126
127
128
128
127
127
127
127
128
128
126
129
126
128
127
126
127
128
128
129
127
126
128
127
125
127
125
127
128
125
125
127
126
126
126
127
126
127
125
127
126
126
127
127
127
126
128
127
127
126
127
127
127
129
128
129
128
127
129
127
128
127
129
126
127
126
126
127
125
126
127
126
126
128
126
127
128
126
126
128
126
127
128
128
127
129
126
129
128
127
128
128
127
129
125
129
128
127
129
128
129
128
127
127
129
127
128
128
127
128
128
128
128
127
131
124
128
128
126
127
128
128
126
126
125
126
127
128
128
125
129
128
126
129
125
130
128
128
129
128
130
128
130
126
130
128
128
127
128
126
127
126
127
129
126
126
127
126
126
127
126
125
126
127
127
124
127
126
127
127
126
126
127
125
126
126
127
125
128
125
127
126
127
126
126
128
127
126
127
126
127
129
126
128
127
127
128
128
127
126
127
128
127
127
127
127
126
127
127
128
126
128
126
127
127
128
128
129
127
128
127
127
127
129
128
127
129
129
127
128
126
128
126
127
128
129
127
127
128
128
127
129
127
128
128
126
129
126
128
127
129
127
129
127
129
127
127
130
127
129
127
128
127
126
127
126
127
126
127
126
127
126
128
127
127
126
127
127
126
127
126
127
127
127
127
126
127
126
126
125
126
125
127
126
127
126
127
127
126
128
127
128
127
127
127
126
128
127
126
128
127
128
127
127
126
127
127
127
129
126
128
128
127
126
127
127
129
125
127
127
127
128
127
127
127
128
127
129
127
129
127
128
128
126
127
126
127
128
127
127
128
127
127
128
127
128
128
128
127
127
128
129
126
128
128
128
129
128
128
129
128
128
128
128
129
128
129
128
127
129
128
127
128
127
127
126
127
126
126
126
127
126
126
125
127
125
126
126
127
127
127
127
127
128
126
127
128
127
127
128
127
128
128
128
127
128
127
126
127
127
128
126
127
127
128
128
126
127
127
127
126
127
127
126
127
126
126
126
126
126
127
127
126
127
126
126
127
127
127
126
128
127
128
127
127
127
128
128
127
128
128
128
128
128
129
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
126
127
127
127
127
127
127
126
127
127
127
127
127
126
126
127
127
126
128
127
127
127
127
128
127
128
128
127
129
128
129
128
129
128
128
128
128
128
127
128
129
127
128
127
128
127
127
127
126
126
126
127
126
127
126
127
126
126
126
126
125
127
127
127
126
127
127
128
127
128
127
128
127
128
127
129
127
128
127
128
127
127
128
127
128
128
127
127
127
129
127
128
127
127
128
126
127
127
126
126
127
126
126
127
126
126
127
127
127
127
127
128
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
126
128
127
127
127
126
126
127
126
126
127
127
126
127
127
127
128
127
127
127
128
127
127
128
127
129
127
128
127
128
127
129
127
127
128
128
128
127
127
127
127
128
126
127
127
127
126
127
126
128
127
127
127
127
126
127
127
126
126
126
126
127
127
127
126
126
127
127
127
128
126
127
128
127
127
128
128
128
128
128
127
128
127
128
126
128
128
127
127
126
127
128
127
127
126
127
126
127
126
126
128
127
128
126
127
128
127
127
128
127
127
128
128
126
128
128
127
128
128
127
128
127
127
127
128
128
128
128
127
128
128
128
128
128
127
128
128
126
127
127
127
128
127
127
128
126
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
126
128
127
128
127
127
127
127
128
127
127
127
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
126
128
126
128
127
127
127
128
126
127
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
128
127
126
126
128
127
128
126
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
126
127
127
128
127
128
127
127
127
127
127
129
127
127
127
128
127
128
128
128
127
128
128
128
127
128
127
128
126
128
127
127
128
127
127
127
127
127
127
127
127
127
127
126
127
127
126
127
126
127
127
127
126
127
126
127
128
127
127
127
127
127
128
126
128
127
127
127
127
127
128
128
128
127
127
128
127
127
128
127
128
127
127
127
127
127
127
127
127
128
128
127
127
128
128
126
128
126
127
128
128
127
127
128
127
128
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
127
128
128
126
127
127
127
127
127
127
127
127
126
127
127
127
127
126
127
127
127
128
127
127
128
128
127
127
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
126
126
127
127
127
126
127
127
127
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
126
127
126
127
126
127
127
127
128
127
128
127
128
127
128
127
128
128
127
128
127
128
128
128
128
127
128
127
128
127
127
127
128
127
127
128
127
127
127
127
127
128
126
127
127
127
127
127
127
127
128
126
128
126
127
127
127
126
127
127
127
127
126
128
127
127
127
127
127
126
127
127
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
127
127
128
128
128
128
127
128
127
128
128
126
128
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
128
127
127
128
128
127
128
128
127
128
127
128
127
127
128
127
127
128
127
127
127
127
127
128
127
127
127
127
128
127
127
128
127
127
128
127
128
127
127
126
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
128
127
127
127
127
128
127
127
127
128
128
127
128
127
128
127
127
128
127
128
127
127
127
128
127
128
126
127
127
127
127
127
127
127
127
126
127
127
127
127
128
127
128
127
127
128
127
128
127
127
128
127
127
127
127
128
127
128
127
127
127
128
127
127
127
127
127
127
127
126
127
127
127
126
127
126
127
127
127
127
127
127
126
127
126
127
127
127
127
127
127
128
127
128
127
128
128
128
127
128
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
126
127
127
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
127
128
127
128
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
126
127
127
127
128
127
126
128
128
128
127
127
128
127
127
128
127
128
128
128
127
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
128
127
127
128
127
127
128
127
127
128
128
127
128
127
127
128
127
128
128
127
127
128
127
127
128
127
127
128
127
128
128
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
126
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
128
127
128
128
128
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
128
127
128
127
128
127
128
127
127
128
128
128
127
128
127
128
127
128
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
126
126
127
126
126
126
127
127
126
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
128
127
128
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
126
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
128
127
128
127
128
128
127
127
128
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
127
127
127
127
127
127
128
127
127
128
127
128
127
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
127
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
128
127
128
127
128
128
128
127
128
128
127
127
127
128
127
128
127
128
127
128
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
126
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
128
127
127
128
127
127
128
127
127
127
128
127
128
127
128
128
127
128
127
128
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
123
116
118
119
125
134
135
134
124
129
130
134
136
136
137
136
136
134
133
139
143
129
137
108
144
145
246
198
171
118
75
66
70
75
77
79
84
85
89
89
96
99
103
105
106
107
115
116
117
115
109
118
123
140
141
121
113
125
136
161
164
160
158
150
171
178
182
171
181
183
178
184
184
187
183
184
185
177
168
157
156
153
149
141
141
142
134
127
128
119
119
111
109
105
102
103
102
96
95
90
88
89
87
77
73
58
47
61
64
74
72
68
64
61
41
57
55
62
68
56
64
72
75
86
85
99
102
106
107
108
112
123
132
137
142
152
152
152
159
164
166
173
172
178
179
182
183
192
189
191
187
187
190
194
187
192
196
187
195
191
194
191
184
181
185
182
187
176
187
176
171
172
158
149
151
147
146
148
138
131
123
129
119
115
115
115
114
110
108
106
95
96
98
98
96
101
96
94
94
95
96
90
93
82
87
89
89
84
84
82
80
84
78
82
76
74
78
81
84
80
84
85
87
87
83
81
78
71
77
79
83
87
82
86
84
86
96
87
94
86
88
93
101
108
114
117
119
119
125
130
134
138
143
144
151
159
159
168
165
175
175
176
178
183
190
185
192
192
195
199
200
196
199
198
198
205
202
206
200
203
194
194
196
191
189
190
181
188
177
175
172
170
170
158
152
149
141
141
139
132
130
121
119
113
114
106
102
96
96
93
94
85
88
84
83
81
80
79
77
77
73
76
71
77
78
77
77
79
77
78
78
83
84
88
89
93
93
92
97
96
100
106
104
105
115
111
116
116
117
118
122
122
124
123
124
128
131
135
133
132
136
134
140
137
143
141
143
141
144
142
143
142
143
142
142
144
139
140
142
138
141
138
134
139
134
133
134
133
136
134
134
131
132
132
132
130
131
129
132
128
128
126
126
125
127
123
125
123
122
122
122
123
123
118
119
122
119
123
119
120
124
122
124
121
123
123
122
123
123
121
124
123
126
125
126
126
128
126
127
127
131
129
128
131
131
132
128
134
130
134
135
134
133
136
135
134
135
136
136
138
138
137
141
134
139
140
138
140
140
140
140
141
143
138
141
141
138
140
138
140
139
138
139
138
139
140
137
139
138
140
136
137
137
136
136
136
138
134
133
134
132
131
131
132
130
129
132
126
130
129
124
127
124
123
126
123
125
125
121
121
120
122
120
118
118
116
118
117
118
117
115
114
115
113
113
115
112
113
113
113
111
113
113
112
113
111
111
112
111
114
114
110
113
112
112
115
112
115
112
114
114
115
115
116
114
116
117
117
120
118
119
119
120
119
120
121
124
123
123
122
124
125
125
128
129
126
128
130
131
130
131
131
133
132
134
133
132
132
132
133
134
132
134
133
137
137
134
136
134
137
137
137
137
137
135
137
137
138
137
137
137
137
138
138
136
137
137
138
138
135
137
135
134
135
133
134
134
134
133
134
134
132
132
132
130
131
129
130
130
130
131
130
128
130
128
129
129
126
129
128
127
129
127
128
128
126
128
125
129
126
126
126
126
127
126
126
126
124
124
124
124
124
123
125
125
123
123
124
123
123
123
121
122
123
123
122
123
122
122
123
122
123
123
121
125
123
123
124
123
125
124
125
124
125
125
124
127
125
125
128
124
126
125
126
126
126
126
126
127
125
127
126
125
128
127
126
126
126
127
126
126
125
127
125
127
126
124
127
127
125
126
126
125
126
126
126
127
126
127
127
127
126
127
127
128
127
128
128
128
128
127
128
128
127
126
128
127
128
127
129
128
128
126
128
126
126
126
127
127
127
128
127
127
128
127
126
128
128
127
129
128
127
128
129
128
128
127
128
130
128
129
129
130
129
131
129
129
130
131
129
130
131
128
131
129
131
130
129
130
130
130
130
130
129
131
130
129
131
129
129
131
129
130
129
129
131
130
130
130
130
130
130
130
129
129
128
129
128
129
127
128
128
128
128
127
126
128
125
126
126
125
127
126
125
126
125
124
125
126
124
125
124
125
125
124
125
123
123
123
123
122
124
121
123
122
122
124
121
124
123
121
124
123
123
125
123
124
124
125
124
125
125
125
125
126
126
127
126
127
126
126
127
126
127
126
127
128
127
128
128
128
127
128
126
127
127
127
128
128
128
128
127
127
129
127
128
127
128
128
129
128
128
129
128
129
129
130
127
129
129
129
130
130
130
130
130
131
130
130
130
131
130
130
129
130
130
130
130
129
130
130
129
129
129
128
129
129
128
129
129
128
128
128
127
128
127
127
126
127
126
126
128
127
126
127
127
128
127
126
126
126
126
126
126
126
125
127
125
127
125
125
127
126
126
125
126
126
126
126
125
126
125
126
127
125
127
127
125
126
126
126
126
126
127
127
127
127
127
127
127
126
127
126
128
127
126
127
127
127
128
127
127
126
127
127
126
127
128
127
127
128
127
127
127
127
127
128
127
128
128
128
127
128
128
129
128
128
128
128
129
128
128
129
128
129
127
129
128
129
128
128
129
128
128
128
128
128
128
129
128
129
128
128
127
128
128
127
128
127
128
127
128
127
127
127
127
126
128
127
127
126
127
127
127
126
127
127
126
126
126
127
127
127
127
126
127
127
128
127
127
128
127
127
128
128
128
128
127
128
128
128
127
128
127
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
127
128
127
128
128
128
127
127
128
127
128
128
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
128
127
128
127
128
128
127
127
128
127
128
127
128
127
127
127
127
128
127
128
127
128
127
127
128
127
127
126
127
126
127
126
126
126
125
126
125
126
125
125
126
126
126
126
125
126
126
126
126
126
126
127
126
126
126
127
127
127
127
128
128
127
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
128
129
128
128
128
128
129
128
129
128
129
129
129
128
128
127
128
127
128
127
129
128
128
127
128
127
127
127
127
127
128
128
128
128
127
126
125
126
126
125
127
128
127
127
127
127
126
126
126
125
124
127
126
126
126
125
125
126
126
126
125
125
126
126
126
126
126
126
126
127
127
126
127
127
127
125
127
128
127
127
128
127
126
127
128
127
128
128
129
127
128
128
128
127
128
129
128
128
129
128
127
127
127
127
128
129
128
128
127
127
128
126
126
127
128
127
128
128
128
129
128
129
128
128
129
129
128
128
128
128
128
128
128
128
127
128
127
126
127
128
127
128
128
128
126
127
126
127
127
127
127
128
127
127
126
126
127
127
126
127
127
127
126
126
127
127
127
127
128
127
126
127
127
126
127
129
128
127
128
127
126
127
129
128
126
124
128
130
123
125
131
127
124
131
131
124
127
133
128
125
129
131
128
127
130
128
125
126
130
127
126
128
128
125
125
127
127
121
126
132
127
135
134
117
129
140
122
123
135
124
120
137
125
113
130
132
119
131
126
125
134
128
123
130
132
128
130
124
120
129
128
118
118
128
128
127
132
132
125
125
134
134
123
125
130
133
130
122
123
129
128
123
128
133
119
120
136
124
112
129
135
120
120
129
127
121
129
132
120
119
125
121
117
124
131
129
121
126
139
136
125
136
135
115
114
133
132
131
129
134
128
110
129
143
119
121
142
133
123
141
140
118
126
133
124
124
129
129
130
130
126
121
122
133
132
126
130
126
122
131
130
122
126
128
125
119
125
132
123
121
118
130
130
125
131
129
121
134
135
122
127
134
122
126
129
119
114
132
125
120
131
133
119
132
136
127
120
124
124
126
140
146
131
128
128
127
125
125
131
127
123
129
135
130
119
106
127
132
130
121
131
110
111
133
130
135
131
120
124
126
134
135
139
128
116
112
134
142
138
115
122
109
129
128
135
133
127
134
130
131
139
142
136
115
111
121
135
145
127
115
112
112
128
127
130
126
122
132
132
128
140
142
140
126
113
110
135
146
137
115
117
108
122
131
127
124
121
128
123
123
133
137
149
140
114
110
125
137
137
112
107
113
116
128
131
133
121
124
129
123
122
146
143
133
125
113
114
142
147
133
116
122
111
128
137
130
131
126
131
134
124
136
152
140
120
109
118
137
147
141
116
112
114
133
128
128
118
118
124
129
127
129
129
134
131
113
100
135
155
138
106
116
119
133
132
127
115
114
139
137
110
120
156
139
125
132
107
112
159
154
105
128
145
108
120
135
115
117
145
137
108
110
153
148
123
121
111
103
150
149
123
133
145
100
106
139
123
118
136
131
117
113
144
156
119
117
126
104
120
143
130
128
145
107
96
129
136
112
124
135
123
114
133
167
133
113
129
118
105
144
138
132
139
126
98
118
147
122
115
134
137
121
117
160
157
115
133
138
96
125
147
136
135
142
102
108
144
127
106
126
140
125
111
138
161
118
117
139
113
102
144
134
128
136
113
103
126
132
111
122
134
124
117
123
162
142
110
134
132
91
129
137
134
138
129
101
116
135
124
125
127
125
127
124
143
158
120
127
144
99
140
137
137
141
111
110
128
137
120
122
129
135
127
123
156
139
116
143
129
87
134
144
135
137
127
105
118
138
126
118
124
134
136
115
139
160
118
128
141
97
106
147
136
131
135
108
111
128
133
118
119
128
134
121
120
162
135
115
140
121
88
141
140
130
137
122
107
119
140
126
119
124
134
130
112
149
154
111
131
142
93
114
148
134
132
136
109
113
132
135
118
131
137
116
125
165
127
116
146
116
87
145
138
129
139
121
108
120
139
123
118
124
136
130
113
153
151
113
134
137
88
122
145
130
135
134
108
113
131
131
118
120
133
136
113
133
164
119
121
147
106
94
150
133
131
142
117
110
123
138
123
121
126
138
123
116
160
142
112
142
131
87
132
140
130
139
131
107
116
136
129
121
121
136
133
110
142
158
116
133
143
95
105
134
133
142
118
111
121
135
124
121
125
138
125
113
155
145
115
139
130
85
124
143
130
139
135
109
117
130
129
120
120
133
133
113
138
157
120
130
140
101
100
149
132
135
143
116
113
121
135
126
121
126
137
120
118
158
137
122
142
122
86
135
140
132
140
128
109
113
130
130
122
119
135
129
111
144
151
115
131
137
93
107
147
129
135
139
111
112
121
135
127
117
127
137
117
126
161
128
124
144
115
91
145
135
133
143
125
111
117
136
131
120
119
139
129
116
156
143
116
147
135
81
122
146
128
137
136
112
113
128
138
123
113
132
140
116
135
158
119
137
148
95
94
148
129
131
140
117
109
118
142
127
112
122
144
124
116
159
131
123
156
116
79
134
140
125
136
130
108
111
134
138
119
114
139
137
112
144
152
116
151
139
83
107
148
128
135
116
108
118
144
129
112
124
146
121
120
162
128
130
155
107
85
137
136
129
134
128
108
112
137
139
120
114
141
138
109
149
149
117
152
133
85
113
148
127
130
137
116
109
124
145
127
112
128
146
114
124
161
123
134
151
101
89
142
135
129
132
126
109
112
139
140
120
113
145
133
107
155
145
120
150
126
84
118
146
130
128
132
116
109
123
147
128
107
134
148
109
163
128
124
151
108
85
136
140
127
130
131
110
110
134
144
120
109
143
138
105
149
150
116
146
133
87
110
148
131
128
134
119
108
117
148
133
108
127
149
113
125
160
122
132
149
101
88
141
138
129
129
128
109
108
138
145
114
110
148
132
109
155
142
121
148
123
84
120
150
130
126
134
116
109
123
150
126
108
135
147
111
133
157
123
135
143
99
96
144
137
128
128
127
110
110
139
143
113
115
147
127
113
157
139
122
145
125
87
116
146
136
120
131
121
106
116
151
135
103
130
144
116
133
154
129
126
140
108
91
134
149
127
115
136
117
101
133
158
116
106
142
136
120
144
148
125
126
134
97
107
143
150
114
129
129
105
107
149
143
102
122
139
133
133
146
150
118
125
120
100
129
144
133
120
124
116
121
136
129
120
122
116
125
141
120
155
112
115
124
115
128
143
129
117
128
128
127
133
125
128
132
117
139
144
119
148
140
101
120
122
103
125
140
104
120
136
112
131
135
118
138
130
116
138
141
137
145
137
119
136
139
119
139
131
112
142
135
117
137
132
122
133
115
116
132
127
129
131
121
120
131
122
125
129
113
117
137
117
118
134
123
121
127
114
121
128
118
127
137
115
121
137
122
124
134
117
125
123
125
138
130
129
134
131
132
137
128
135
139
126
130
141
129
126
136
128
129
135
125
129
137
121
129
128
118
124
127
120
132
131
119
129
132
123
125
124
118
125
126
124
132
130
122
120
120
120
115
113
113
113
114
123
127
128
127
135
130
136
133
125
130
124
128
137
124
129
138
124
128
143
126
123
139
129
114
125
138
113
120
135
117
131
137
124
124
122
126
141
129
124
145
135
126
144
148
127
131
136
121
131
140
113
127
142
125
120
139
137
113
118
109
96
127
140
138
126
122
111
122
126
119
119
126
129
143
142
122
133
152
108
103
149
120
98
144
108
90
137
147
107
132
127
96
133
135
112
121
141
139
117
129
152
138
131
138
127
128
130
128
99
110
136
149
143
119
131
112
110
139
129
123
138
138
125
133
133
128
137
136
118
140
143
119
127
129
126
148
126
130
125
104
116
118
114
118
134
125
100
111
143
139
122
123
125
119
127
130
116
135
130
142
136
128
126
114
119
123
131
126
134
146
121
111
143
147
135
128
130
129
123
129
122
125
121
138
139
116
129
118
110
124
128
111
127
136
125
123
129
137
146
138
122
127
125
118
123
127
128
129
132
109
130
123
107
125
127
113
123
134
132
127
116
141
157
120
134
138
126
128
135
125
123
144
142
123
130
110
110
123
127
113
126
140
133
111
128
143
140
125
125
126
132
124
132
129
121
133
149
115
131
122
104
123
132
110
118
139
134
104
114
137
142
129
123
125
123
118
132
120
120
136
149
117
131
127
99
125
138
119
120
139
143
119
108
138
153
138
126
129
121
123
134
126
127
130
141
132
125
131
108
119
132
127
114
135
146
123
112
138
145
142
130
125
122
129
127
131
125
125
135
141
112
127
116
107
130
134
109
128
141
125
106
124
141
147
128
122
120
124
124
134
119
120
131
144
115
126
120
108
126
128
111
120
135
135
108
111
143
148
129
127
124
120
131
138
121
127
133
147
134
121
127
115
126
133
126
115
132
146
117
106
140
151
136
127
123
117
129
137
132
119
125
141
140
119
131
115
116
133
113
130
140
123
105
126
148
147
122
125
119
119
131
141
114
119
133
143
120
126
121
111
129
130
115
124
136
137
110
117
147
151
127
126
123
119
130
142
118
121
129
146
129
116
127
115
122
128
122
120
136
143
114
110
141
150
131
125
125
116
129
141
127
117
128
141
139
117
131
120
116
131
124
111
132
146
119
103
133
150
139
122
124
115
126
138
132
114
126
136
146
124
122
109
126
126
110
124
143
133
103
118
150
145
126
125
118
119
133
142
118
125
131
141
132
121
129
115
123
126
117
120
139
143
109
112
144
151
131
127
124
115
134
141
119
123
133
136
137
121
128
118
117
130
119
118
137
142
118
109
139
155
137
121
124
112
126
139
126
111
130
132
137
126
121
123
117
127
118
117
132
141
126
107
126
154
146
124
126
112
119
142
134
111
133
136
137
122
126
119
123
126
115
121
136
139
112
109
139
151
132
125
120
107
131
143
122
118
132
134
137
127
126
124
116
127
119
117
134
142
119
105
131
153
138
124
129
113
122
143
133
115
132
137
138
133
124
132
120
126
120
116
133
142
128
105
121
151
144
122
127
118
113
139
138
112
124
136
135
132
122
131
119
120
124
114
127
141
134
106
111
144
150
125
124
122
108
132
143
119
119
135
137
134
126
126
130
119
123
115
121
139
144
115
106
135
153
133
124
128
111
122
143
125
112
132
137
134
133
121
133
120
125
119
118
136
146
122
104
128
155
138
123
128
115
115
142
132
111
127
137
130
136
124
129
121
121
119
113
131
146
129
100
116
148
145
121
124
123
110
137
141
112
118
138
133
130
127
124
128
122
119
113
129
140
135
108
109
140
130
121
128
116
124
143
125
113
132
142
132
132
123
133
120
124
118
121
141
146
117
106
129
155
139
124
132
119
114
142
132
109
127
140
130
133
128
132
123
122
122
117
132
144
126
103
120
149
143
120
127
125
110
132
136
110
118
139
133
127
131
127
128
119
123
117
127
145
134
104
112
142
148
124
127
128
112
127
141
119
114
135
138
124
135
126
132
119
123
116
121
143
118
101
125
151
140
123
129
123
111
137
138
111
122
143
134
126
131
130
127
120
124
116
130
146
129
102
116
144
147
124
128
128
110
128
145
115
111
139
139
120
136
129
131
119
126
115
123
146
138
106
108
135
150
127
126
131
114
117
143
124
108
131
142
120
131
130
134
120
126
121
117
140
146
110
102
130
152
134
123
131
121
112
138
133
107
122
144
127
126
135
132
125
120
123
117
135
150
122
100
120
146
144
124
128
126
112
130
139
112
116
142
136
119
137
128
131
121
126
116
126
148
132
102
114
140
147
126
128
129
116
123
142
117
111
136
140
119
136
130
132
120
124
119
120
144
143
105
104
132
151
134
125
128
120
114
137
129
108
125
143
123
128
134
133
126
122
120
116
138
147
116
102
126
149
140
123
129
126
114
131
133
113
120
141
133
139
131
131
121
123
117
129
150
130
99
114
145
149
124
126
127
114
122
138
119
113
134
140
117
135
133
136
121
121
118
121
146
143
105
105
134
151
129
123
129
120
114
134
129
110
124
144
123
126
137
132
124
119
121
119
138
148
114
100
128
152
138
122
128
124
116
130
137
115
117
142
133
117
138
133
132
117
120
119
130
152
127
100
118
146
147
124
129
128
117
125
138
112
128
144
121
125
134
134
122
118
124
123
136
145
111
102
131
151
133
125
130
124
115
130
138
115
113
141
129
115
137
131
126
116
124
122
130
146
122
101
121
147
140
124
131
129
114
124
140
120
110
138
135
111
136
133
132
118
124
125
125
144
137
103
113
141
148
126
131
131
118
119
134
130
114
126
141
119
127
136
135
120
117
125
124
139
143
108
107
131
149
130
125
131
123
115
130
135
115
118
143
125
112
137
133
128
116
127
123
131
147
120
100
127
148
136
126
133
128
117
124
133
119
116
141
135
116
131
139
134
111
122
123
120
139
139
103
107
147
144
123
134
129
117
117
134
129
113
128
142
114
126
138
133
123
120
129
123
139
143
110
107
138
151
128
129
130
122
116
130
135
118
116
141
122
119
141
133
125
117
122
124
138
133
123
115
154
140
128
129
123
116
113
134
126
114
133
130
109
133
130
123
129
128
122
135
130
126
121
128
133
129
141
137
128
122
105
118
128
129
120
135
124
122
143
130
114
106
130
146
146
123
120
124
142
148
134
121
128
132
126
124
126
112
118
147
119
113
144
130
124
114
124
117
128
125
115
131
150
131
139
149
124
109
119
108
123
130
134
125
126
112
136
144
123
100
122
136
125
146
116
110
145
146
127
114
139
114
112
143
134
127
158
134
114
112
126
137
127
115
127
130
130
140
128
101
120
141
127
129
156
142
104
102
126
131
135
137
135
124
126
138
139
101
112
126
123
139
132
101
124
143
120
120
132
134
110
127
139
118
120
125
152
121
104
154
148
107
130
135
104
123
137
115
122
142
133
124
139
132
124
119
118
128
132
145
130
113
126
118
134
132
117
144
151
127
140
121
94
131
150
115
122
142
124
117
124
116
116
121
129
126
137
146
121
117
112
141
136
132
142
135
101
133
142
110
119
138
138
127
117
125
132
120
112
136
118
120
149
135
127
128
126
128
133
124
107
126
158
132
127
143
118
114
114
121
124
124
116
126
126
120
144
135
113
110
140
153
137
112
105
123
135
138
133
143
149
127
128
113
120
127
112
121
111
143
148
123
111
126
120
128
146
132
126
134
121
122
144
137
119
130
130
113
140
144
106
118
115
120
142
140
109
111
129
122
119
128
113
122
143
142
125
124
128
137
114
108
144
154
128
136
115
118
130
134
134
114
128
133
139
134
111
114
128
128
122
130
153
135
108
112
133
129
127
139
132
122
133
145
141
99
113
135
133
139
123
108
132
137
129
121
131
128
116
137
117
111
123
146
113
102
147
153
110
132
140
111
108
124
127
116
134
143
124
136
137
135
112
114
131
125
146
132
117
128
120
137
135
116
145
147
130
140
123
93
127
151
126
126
136
126
118
125
124
127
104
114
134
135
141
120
110
110
140
142
129
136
133
114
138
139
102
113
143
149
122
117
126
132
130
117
124
111
117
149
131
126
123
120
133
133
119
113
123
157
141
142
131
117
122
111
124
129
119
122
127
120
131
136
128
111
124
149
147
109
109
124
127
141
137
142
156
142
131
114
113
128
115
115
130
120
132
152
130
118
117
116
134
145
123
128
134
120
120
135
140
122
125
137
118
132
147
112
114
115
112
136
140
125
106
121
129
105
117
131
114
126
145
135
120
133
134
118
105
137
158
122
140
126
112
125
136
137
117
122
136
141
124
120
114
121
132
130
127
151
139
108
118
136
123
126
140
136
129
139
143
142
107
113
124
140
130
108
131
129
129
133
120
127
136
119
122
135
120
108
122
141
117
100
142
152
109
126
142
114
111
113
127
112
121
149
127
127
146
136
117
115
133
127
143
137
115
129
126
136
140
116
143
151
139
142
113
102
119
143
135
112
138
140
111
134
126
122
116
108
131
135
141
116
113
118
149
140
126
132
123
132
138
112
109
131
151
125
117
123
127
133
121
113
110
113
145
132
129
118
116
132
134
122
125
113
141
156
127
135
137
122
119
113
130
132
120
112
126
118
128
143
122
107
132
154
138
103
111
120
127
149
134
139
158
154
134
108
112
128
122
115
115
117
133
146
128
114
106
137
143
126
130
134
117
118
123
122
136
146
129
135
116
136
148
112
104
111
145
142
123
115
126
128
123
102
121
127
119
148
135
111
134
145
122
103
127
161
126
125
138
124
122
135
146
111
127
151
131
124
129
117
116
131
134
112
147
148
106
111
136
126
119
132
130
129
144
140
137
106
103
137
144
114
113
133
117
131
141
109
114
150
125
122
136
121
111
115
123
129
126
123
142
118
118
147
119
113
110
120
132
117
142
134
119
146
140
125
112
135
131
133
132
111
133
127
129
140
116
132
154
137
146
112
107
118
133
136
118
132
141
116
133
134
130
130
99
117
152
145
118
112
120
113
141
151
120
130
132
129
129
120
107
124
149
123
118
129
132
130
116
102
129
128
118
136
132
125
116
133
129
116
137
126
129
148
134
126
140
138
109
112
134
136
115
94
136
139
112
139
149
114
127
152
141
105
109
122
124
132
134
139
155
129
113
123
127
120
99
110
139
115
130
146
112
101
138
148
129
111
124
122
113
134
120
125
156
140
137
126
118
137
120
106
130
119
117
159
135
94
126
142
113
105
122
139
119
141
141
104
135
157
119
109
125
154
128
128
135
129
122
142
152
105
118
158
134
113
115
121
115
136
150
120
127
150
116
111
124
116
113
126
131
149
140
126
145
110
100
146
136
109
120
123
119
137
121
108
138
154
121
117
119
123
107
109
135
129
112
154
148
105
125
140
120
117
117
128
126
136
141
124
130
146
131
124
121
128
139
122
114
141
118
123
149
116
117
163
150
127
105
115
126
133
140
115
121
145
141
131
113
118
138
115
109
135
141
113
131
129
93
130
165
132
125
126
129
125
126
122
112
137
148
122
122
121
140
124
92
124
138
128
137
132
109
109
141
135
112
106
129
141
146
138
127
121
148
133
112
122
126
123
105
122
147
116
122
158
124
108
151
155
108
114
128
110
120
131
136
145
153
143
122
111
124
125
97
97
137
135
127
151
132
97
143
158
129
104
128
129
71
88
134
137
156
170
201
196
206
147
140
84
92
102
91
102
96
74
90
36
74
25
78
115
134
164
196
231
146
193
86
89
163
187
134
139
174
124
157
139
129
180
162
141
164
94
88
98
167
121
144
76
152
159
142
125
117
89
29
54
126
99
100
86
91
107
124
111
39
60
113
102
113
124
141
155
194
201
173
169
172
201
196
157
173
195
177
183
175
157
179
164
141
99
84
113
98
98
105
116
94
90
69
57
57
87
79
120
60
46
85
121
118
98
76
68
116
145
172
172
139
149
182
152
165
198
168
211
200
158
167
175
114
133
172
144
123
140
141
131
105
98
81
102
76
40
67
83
82
78
78
67
54
60
87
85
99
131
133
156
150
154
178
182
184
182
170
196
162
171
189
164
183
163
170
177
213
182
185
155
94
104
97
75
81
83
78
70
95
62
87
110
97
75
86
116
109
152
131
114
118
119
132
75
105
105
130
134
148
167
163
175
149
178
187
191
167
136
144
170
174
166
161
124
174
169
158
140
116
122
111
93
92
85
91
37
68
69
83
61
72
56
58
79
87
125
153
148
141
141
154
143
131
143
156
171
161
183
185
189
192
149
165
137
132
113
120
123
133
105
114
108
124
137
134
126
90
73
95
112
132
113
95
109
107
83
118
122
112
109
88
93
110
131
129
126
97
116
107
149
155
130
142
155
145
178
193
196
158
159
172
172
177
135
125
126
130
134
144
123
129
154
106
100
94
95
94
35
81
93
65
108
113
111
107
113
105
118
139
126
144
116
126
148
162
139
135
137
139
135
174
188
153
180
181
151
155
165
141
116
119
139
119
133
167
123
119
134
100
117
149
97
94
82
99
113
135
98
68
102
129
90
89
127
110
93
114
117
124
127
135
146
129
136
188
139
169
157
158
165
159
156
164
153
148
128
120
125
157
114
122
118
111
121
114
97
109
91
87
84
88
85
96
98
62
97
117
99
154
129
136
141
134
148
151
127
110
116
142
135
154
164
144
153
152
136
125
161
174
134
158
154
135
169
175
141
101
127
110
108
119
136
123
106
90
108
118
127
75
59
61
80
95
91
106
88
125
116
116
128
147
142
137
146
137
149
190
168
148
142
143
155
142
167
155
152
139
143
155
148
151
115
120
109
126
144
93
107
114
110
81
124
120
103
124
105
103
94
122
120
96
89
126
96
120
131
138
123
139
120
119
155
124
147
138
134
153
172
151
148
159
134
109
155
147
149
141
148
135
122
157
139
115
104
94
103
95
120
105
105
114
93
103
112
96
91
96
92
114
133
142
127
131
157
124
125
161
157
156
164
150
139
168
180
155
142
124
143
139
135
139
135
129
135
130
126
154
128
114
105
103
118
122
98
90
113
111
102
111
113
132
121
117
126
108
136
137
132
111
118
120
131
140
143
126
136
133
130
147
133
131
128
124
133
171
167
142
135
129
117
121
152
152
140
129
136
116
122
147
123
102
92
116
98
114
116
104
100
106
101
100
112
88
97
101
108
124
161
151
138
164
151
133
151
165
143
160
149
133
134
163
160
136
124
111
124
120
135
128
125
119
120
125
139
118
127
110
110
127
136
115
113
126
106
100
124
124
132
121
115
108
113
142
117
115
108
124
137
122
153
129
136
146
130
142
162
135
145
140
124
154
177
140
120
127
120
105
117
123
117
125
127
112
114
133
129
112
94
88
113
113
105
123
128
131
124
130
140
125
118
123
128
119
150
149
130
138
142
122
117
147
139
138
143
126
124
143
161
141
120
110
119
114
121
123
116
122
110
130
129
120
122
109
101
104
126
124
105
107
118
99
103
135
140
144
135
131
108
162
160
145
141
121
151
151
154
164
143
152
139
130
148
139
129
125
111
98
133
149
130
102
104
102
88
117
117
114
121
121
113
132
143
121
126
96
82
125
108
134
140
142
145
136
146
144
136
130
133
129
135
165
156
138
140
136
117
102
141
118
154
151
112
104
150
148
120
131
88
97
131
104
111
113
113
114
118
132
134
108
121
112
120
123
135
127
122
144
127
116
135
153
146
150
147
123
142
173
144
151
128
107
148
131
123
121
113
119
113
110
132
113
115
115
96
111
139
131
97
113
115
97
98
134
128
143
148
139
136
157
150
142
144
115
126
151
118
135
119
131
145
129
129
137
125
138
129
113
134
147
132
122
129
114
115
115
115
128
131
120
126
151
142
141
122
72
112
130
102
129
123
129
123
139
150
144
140
134
110
116
151
146
121
128
136
115
111
140
127
134
141
126
113
155
147
123
139
100
104
145
113
119
126
109
117
113
122
124
119
122
113
103
133
160
136
113
132
111
113
120
140
124
147
136
121
132
160
141
130
131
106
139
144
121
150
126
133
126
125
126
117
115
125
99
106
139
135
137
142
112
103
124
128
124
141
120
102
130
155
132
138
133
87
128
133
121
141
138
131
127
129
146
131
128
125
97
109
138
143
124
132
138
123
114
146
137
144
144
112
105
143
146
129
136
96
107
147
111
121
128
112
120
110
127
123
111
131
120
107
138
143
124
114
138
124
108
139
143
132
149
144
123
142
149
139
135
113
98
134
129
108
140
126
115
132
126
115
124
138
112
108
115
130
152
137
130
120
112
115
128
126
129
132
121
131
158
144
132
139
124
109
131
125
109
133
127
136
123
137
140
135
117
112
110
121
141
146
127
126
112
125
134
124
115
129
122
113
137
151
129
128
136
108
120
125
108
132
136
123
128
125
124
140
133
119
115
127
138
151
137
120
110
130
131
126
120
140
150
120
123
151
141
126
140
116
91
125
116
117
131
107
137
116
112
127
124
127
131
117
135
145
139
141
130
116
121
121
118
146
143
115
142
163
129
137
145
100
84
119
113
135
136
131
130
129
128
128
120
107
115
133
131
136
131
132
138
130
125
115
113
153
163
124
113
136
136
144
153
110
87
112
133
128
140
111
122
136
138
118
115
127
123
126
140
139
143
148
131
135
111
107
121
136
144
128
116
140
157
119
116
131
111
97
130
118
138
124
120
128
114
124
138
115
116
133
126
134
141
130
130
121
121
126
126
124
123
122
115
145
147
127
125
112
119
142
117
131
130
127
129
141
140
113
111
137
132
121
133
137
143
131
120
127
124
136
133
123
125
141
133
116
100
101
112
110
127
138
130
128
145
146
113
125
125
105
107
116
141
123
114
143
129
131
145
127
125
119
129
150
150
132
129
129
131
134
125
115
119
130
132
128
140
144
139
124
137
126
104
120
118
110
103
127
147
123
117
131
125
132
142
124
117
104
119
129
137
134
126
132
146
143
127
112
113
119
125
125
141
149
127
128
150
133
113
130
125
106
100
137
146
114
116
134
127
130
136
115
115
115
131
139
141
123
132
144
140
129
109
105
114
129
116
114
140
143
127
132
155
128
120
129
116
92
119
155
137
113
132
131
136
142
114
124
126
132
139
141
129
133
131
132
121
120
104
99
107
108
130
155
138
114
127
145
114
105
123
104
103
132
158
132
115
145
146
129
134
128
121
127
119
121
138
136
137
163
144
138
132
109
102
124
118
116
146
148
129
124
146
137
113
115
116
102
101
133
140
112
121
148
130
126
141
117
114
97
106
125
130
137
151
132
148
133
108
119
113
126
127
114
137
143
140
153
135
111
128
126
107
116
141
133
114
122
140
129
132
148
106
113
101
108
127
129
135
129
128
142
119
109
112
110
121
120
118
142
132
137
139
152
120
120
138
132
116
128
132
127
123
150
135
124
150
140
106
128
107
115
129
134
139
125
139
144
107
103
119
116
122
115
134
132
131
138
145
129
116
130
133
116
118
140
131
122
131
125
132
135
148
118
120
123
112
139
124
127
131
146
133
106
101
127
125
122
131
133
130
136
148
136
121
127
135
127
117
139
143
118
111
134
129
129
144
128
114
124
120
113
110
126
115
132
137
135
127
97
108
129
108
132
146
128
131
153
142
134
139
136
124
122
132
140
125
124
127
126
131
143
131
109
124
109
119
115
100
119
127
142
130
123
113
106
120
111
125
146
130
135
154
147
128
141
148
114
101
145
148
114
132
132
119
132
150
143
109
125
127
121
129
113
107
131
136
136
122
115
129
101
112
133
132
135
133
139
142
125
143
142
104
100
147
139
115
143
125
116
136
148
132
126
122
127
131
121
119
111
129
138
128
131
118
134
108
102
139
124
124
149
136
122
139
153
136
109
116
139
124
129
137
114
125
135
140
117
124
119
122
137
122
111
131
122
123
126
121
129
124
114
117
120
128
142
136
121
144
149
127
124
136
123
119
142
127
123
139
140
128
123
129
119
120
132
120
111
133
135
103
118
123
131
112
121
136
114
109
146
140
115
142
146
134
125
144
138
110
143
130
122
145
139
133
125
131
127
126
131
126
122
123
134
135
105
95
137
106
115
134
125
121
127
130
121
128
141
123
119
141
136
129
140
122
121
140
142
137
124
135
128
131
133
121
125
142
128
120
110
113
103
118
120
134
121
136
138
109
114
140
118
119
128
133
128
146
135
112
132
141
141
127
128
123
135
135
127
123
122
134
141
119
113
123
108
103
126
123
121
146
131
124
134
114
115
124
126
122
135
140
124
136
140
134
143
122
123
128
136
137
125
122
134
134
133
127
117
102
129
123
110
109
144
130
131
132
140
117
115
116
133
124
138
123
119
146
153
143
134
121
120
128
144
125
119
128
133
138
128
123
128
102
120
141
109
112
137
125
113
155
133
109
131
130
105
136
132
104
114
145
150
147
128
124
117
138
142
126
109
132
141
135
127
125
110
126
123
118
134
132
114
109
143
125
123
136
123
122
127
123
110
101
122
140
148
137
130
121
135
145
127
118
124
133
144
133
128
118
114
135
136
106
142
141
108
115
140
117
140
124
120
139
119
89
122
123
134
144
134
127
122
144
140
126
129
127
133
143
133
122
122
125
138
134
122
136
135
128
129
105
118
118
127
139
126
121
112
106
122
139
127
125
139
125
129
142
137
131
131
139
124
132
126
121
128
133
140
145
117
119
147
136
104
107
112
112
136
152
113
104
117
114
122
141
114
126
141
133
123
135
151
128
146
140
117
127
124
123
129
142
140
109
126
152
119
108
105
91
125
145
143
106
104
123
121
121
120
127
126
141
137
126
140
141
136
155
122
112
129
125
121
139
150
143
119
118
138
128
121
113
90
112
144
135
124
110
119
126
133
109
127
120
135
145
123
136
141
138
150
125
111
123
120
123
137
151
141
136
124
124
127
129
116
106
105
139
129
127
127
122
132
140
104
115
128
125
142
135
134
130
132
153
132
109
117
117
122
136
150
141
135
134
126
114
126
118
104
111
132
129
111
128
137
129
138
120
113
115
127
142
136
126
126
129
152
138
117
117
112
117
141
152
139
131
136
126
122
131
118
101
116
121
123
114
125
138
128
137
123
111
109
125
134
127
138
126
124
149
141
121
124
122
118
140
152
133
136
140
121
119
135
126
105
122
120
119
110
121
136
126
141
125
121
108
121
128
136
128
121
151
143
117
128
122
114
144
159
132
130
143
124
122
135
128
106
126
126
122
108
119
140
121
136
127
122
107
118
137
124
135
137
118
144
147
117
128
121
117
140
153
138
134
135
122
126
133
124
105
121
125
127
113
119
135
119
137
125
120
108
113
135
128
132
126
123
156
141
110
134
116
110
142
154
133
129
135
130
128
132
123
105
109
125
132
113
123
133
136
135
115
111
109
125
137
131
127
120
152
149
113
129
121
107
135
153
142
124
126
135
133
131
128
110
105
120
142
116
121
129
124
136
138
113
115
117
117
139
134
119
127
155
137
118
132
115
106
138
147
150
124
116
139
138
128
127
118
95
124
152
123
121
118
126
138
140
109
114
126
112
145
134
110
138
154
136
125
127
119
109
127
146
156
118
114
142
138
126
123
119
92
120
148
139
121
103
126
138
133
113
117
124
117
137
129
111
146
140
133
145
120
119
131
117
136
152
123
111
139
141
126
125
115
102
119
134
154
130
97
119
139
120
122
123
118
125
132
121
126
135
131
138
143
126
118
133
130
128
132
130
129
125
139
126
122
118
116
124
119
155
141
110
115
118
117
126
139
118
125
127
124
137
125
114
145
134
129
132
124
142
136
105
123
133
128
130
116
104
141
129
121
141
130
139
136
111
100
122
131
134
130
110
139
152
117
124
123
128
135
132
131
136
130
129
113
124
133
130
129
108
100
125
139
137
133
119
128
138
137
105
98
115
141
124
127
144
136
128
132
115
118
128
145
134
134
132
124
148
139
101
116
132
113
109
127
117
137
147
122
128
131
116
132
120
100
118
112
140
154
141
126
134
132
118
120
128
136
127
132
143
141
138
119
89
98
127
127
123
139
125
125
147
133
124
119
109
127
122
102
138
138
132
139
140
120
130
144
133
125
124
114
138
143
140
128
130
124
97
103
113
122
145
124
127
128
132
137
130
123
126
94
125
160
130
121
130
132
124
139
137
139
137
122
110
130
132
134
134
119
107
119
140
122
101
125
128
139
130
128
112
115
148
135
101
124
130
131
139
107
116
124
146
144
136
118
134
152
128
108
123
119
113
116
129
125
141
153
110
111
130
129
128
118
119
105
125
153
135
127
130
120
134
138
121
129
124
130
129
141
142
130
142
128
95
98
115
124
126
132
141
136
149
136
104
110
113
126
121
113
127
141
150
145
117
123
122
137
150
126
114
118
134
151
134
139
124
122
117
108
105
116
130
146
128
133
149
147
126
91
103
105
112
149
139
120
130
142
145
125
134
128
119
130
133
131
131
119
147
128
122
118
114
133
115
104
135
124
136
146
134
125
125
136
97
87
131
128
138
142
119
124
137
157
139
113
125
117
136
148
127
121
124
123
124
112
136
110
125
155
118
110
143
135
128
115
125
118
123
138
118
112
127
116
143
135
133
135
142
139
120
130
136
111
141
146
111
117
104
121
124
125
140
136
136
124
119
111
117
132
107
123
154
150
128
99
111
121
137
158
128
116
133
150
153
116
122
129
123
143
130
83
109
120
131
138
150
128
137
149
115
87
112
111
113
131
141
146
144
131
104
106
140
122
138
138
115
132
158
145
124
130
135
116
125
115
109
114
122
138
150
132
151
136
125
113
100
97
108
125
148
133
137
144
137
132
115
107
122
119
139
133
130
139
143
144
117
125
99
106
139
117
113
141
147
136
144
146
111
109
123
98
92
125
143
145
128
136
155
147
115
100
114
118
122
154
131
122
142
157
143
110
112
97
110
137
130
120
141
131
145
139
132
125
110
115
109
102
121
140
141
136
132
148
142
125
115
103
119
123
139
146
127
136
146
137
126
107
101
119
124
134
140
128
124
139
145
126
129
113
98
116
121
116
134
134
129
133
137
140
143
123
107
107
130
126
140
143
130
139
138
134
120
97
129
113
122
148
138
120
141
140
128
118
120
103
109
134
132
116
123
132
141
133
135
138
129
120
115
112
125
120
143
148
137
125
134
126
106
115
121
111
144
154
129
138
134
128
125
110
117
113
121
137
135
116
128
139
137
126
132
135
131
118
108
118
129
124
151
144
124
121
125
113
123
112
123
131
144
145
131
122
120
119
105
123
121
124
144
135
119
127
130
134
128
129
131
130
125
119
122
127
120
145
144
121
117
107
125
132
113
132
137
132
157
148
116
119
115
112
110
127
131
128
138
135
123
119
128
138
127
121
134
136
128
124
121
125
120
136
139
123
108
114
134
127
122
143
134
127
155
143
112
121
110
110
118
128
139
122
130
141
128
117
126
136
126
120
137
135
133
130
115
121
123
140
133
110
111
128
129
137
138
142
123
144
147
134
115
109
101
121
126
137
131
125
137
138
124
109
128
130
122
131
134
133
132
130
118
117
113
129
139
111
113
120
130
144
144
134
134
135
138
143
115
96
105
123
133
136
134
124
133
139
129
111
123
126
128
134
131
141
139
128
125
117
109
121
136
116
117
114
128
144
148
135
135
129
130
141
127
100
108
120
137
135
128
127
127
134
134
117
116
125
136
131
132
140
135
127
127
116
116
116
132
120
116
115
125
138
150
139
140
129
132
145
128
103
106
115
136
130
130
129
120
132
137
121
115
124
132
124
134
143
132
129
125
121
121
115
133
113
111
120
121
136
143
142
145
130
138
144
122
109
100
115
127
130
139
127
126
138
128
118
116
127
134
126
139
138
133
131
116
120
125
114
140
97
123
129
136
129
144
148
125
156
145
110
116
99
116
124
131
147
120
129
134
117
119
125
128
130
124
140
139
133
126
107
126
126
131
140
115
99
119
135
125
120
141
140
144
161
129
118
121
119
116
118
134
134
129
139
118
112
129
128
134
123
127
139
136
127
109
118
122
138
148
122
116
123
114
122
114
123
125
148
158
132
131
128
137
119
106
136
130
130
137
118
110
125
133
124
120
135
134
124
109
115
123
134
142
127
128
136
139
117
97
119
120
136
152
130
126
132
150
139
120
122
122
130
141
117
107
126
124
134
128
124
135
137
116
106
113
117
140
140
121
125
147
149
121
113
93
111
145
135
116
124
135
151
144
137
133
111
129
141
110
107
121
129
129
129
129
132
137
116
103
113
115
140
137
122
131
139
153
131
127
114
99
137
132
109
122
139
148
138
148
147
124
136
125
105
117
118
130
129
128
135
135
130
114
113
110
122
137
126
123
135
137
140
137
136
118
123
116
112
113
118
136
138
138
150
146
143
143
113
102
124
113
120
121
124
131
138
127
112
116
113
126
130
116
126
137
142
133
140
139
123
140
124
85
115
122
129
131
137
153
140
156
151
112
103
120
121
117
118
129
136
134
127
118
117
120
131
111
125
137
143
129
136
132
130
141
128
90
94
125
127
122
134
143
141
157
154
117
112
116
124
121
116
124
136
137
124
116
119
127
132
119
116
123
135
144
130
135
125
139
150
122
108
97
120
132
118
135
140
138
165
150
117
121
119
124
119
118
125
130
131
116
119
120
130
133
117
115
125
137
138
130
132
125
145
150
113
113
108
107
130
121
128
133
140
162
144
118
128
121
124
121
122
130
132
115
117
124
130
129
117
119
123
136
133
131
129
118
144
155
114
110
119
113
113
126
133
127
139
158
145
126
129
128
120
123
127
126
133
132
109
118
124
131
129
116
114
126
140
133
126
131
114
133
158
125
109
116
122
110
119
135
130
132
153
146
132
133
131
121
117
124
129
137
136
113
110
123
125
135
119
106
124
140
144
122
128
124
117
147
148
110
121
118
109
124
130
137
140
147
151
145
124
120
116
107
124
138
132
131
123
113
120
123
129
123
121
136
129
123
131
124
133
131
135
151
132
116
119
104
112
120
132
132
133
137
138
141
137
124
126
127
120
109
116
125
122
133
135
126
128
120
110
120
124
133
131
141
140
123
134
132
115
127
109
113
142
132
120
126
141
143
141
143
123
117
118
123
130
129
127
143
138
125
112
114
117
117
133
134
131
136
129
114
125
134
136
129
131
129
102
115
129
113
126
140
146
162
143
123
125
118
114
117
127
112
124
131
113
122
130
125
144
141
130
116
115
120
118
133
149
138
151
130
104
107
98
124
129
129
147
136
138
150
125
130
128
131
140
122
111
115
121
123
124
138
118
116
123
113
122
134
133
148
145
136
125
111
118
122
129
130
111
132
124
110
128
140
148
146
145
128
123
125
110
122
119
122
140
126
114
120
123
124
124
138
125
120
130
119
121
133
131
147
152
135
118
105
99
116
128
130
131
144
144
131
133
134
135
123
129
126
110
117
126
115
126
128
129
140
131
116
121
127
128
128
138
123
124
133
124
133
137
126
133
131
127
116
110
118
130
143
145
142
142
123
107
121
117
123
124
128
134
122
123
131
116
125
126
137
135
117
118
131
128
121
137
131
122
132
116
111
124
118
135
150
142
136
118
113
124
128
141
144
136
130
116
120
124
131
130
124
137
124
111
127
110
114
129
124
138
134
121
131
128
125
124
138
132
124
134
119
114
130
124
137
148
145
140
108
108
122
123
138
143
141
131
120
127
121
127
128
122
129
118
112
133
119
122
132
124
136
133
123
130
130
128
129
138
129
119
132
119
112
124
122
134
146
143
133
105
118
124
125
139
139
136
127
116
123
121
135
125
125
130
109
110
133
113
127
139
130
138
134
117
124
129
130
122
136
128
126
137
118
116
123
121
140
143
139
131
108
121
127
125
137
144
137
123
115
121
121
134
132
127
132
118
119
131
114
125
131
124
136
130
118
131
134
124
126
133
123
128
132
115
118
127
119
140
142
136
131
111
126
129
140
141
141
128
117
127
122
131
129
127
133
114
112
124
110
125
132
124
136
127
121
131
128
122
128
139
126
130
135
119
119
127
121
137
145
145
132
108
122
129
127
139
141
136
126
119
122
114
126
134
129
129
118
121
128
117
129
131
125
133
128
125
129
131
132
128
132
127
120
130
115
113
123
117
139
143
138
130
105
117
123
127
140
138
140
129
117
128
125
133
125
129
114
111
131
116
122
137
130
133
130
121
128
129
131
126
135
131
124
136
120
116
125
117
131
141
137
131
111
119
126
126
138
143
140
124
117
127
120
130
138
127
130
120
119
130
115
125
133
124
134
131
121
130
132
128
126
131
127
124
131
114
113
125
116
136
142
134
131
116
124
125
128
138
142
145
126
120
126
118
126
135
129
129
119
118
124
116
126
131
121
132
126
122
131
131
123
127
135
122
125
133
115
120
128
120
139
145
140
132
114
122
125
127
141
137
136
124
117
124
116
128
137
128
129
116
121
127
115
132
136
122
132
127
126
127
129
133
125
135
132
123
129
112
116
121
112
138
142
138
130
107
117
122
127
143
140
139
127
121
128
122
134
135
125
134
119
119
130
116
128
135
126
133
123
125
128
129
130
128
139
132
123
131
111
123
114
135
143
137
134
109
118
126
126
140
140
140
125
117
129
119
130
137
127
132
119
122
127
112
125
132
123
133
127
125
127
134
130
125
134
128
121
130
111
115
122
118
140
140
134
129
108
121
125
130
140
142
144
122
121
126
117
132
138
126
131
117
118
126
115
127
133
125
134
126
124
126
131
129
129
137
127
127
133
114
116
120
116
143
144
139
130
113
118
121
130
139
143
132
118
123
120
124
133
130
129
120
118
128
116
129
136
117
132
129
125
131
127
127
134
136
127
129
132
112
119
122
111
134
142
132
130
116
122
130
122
133
140
128
122
127
126
131
136
132
130
120
118
129
123
129
133
130
127
132
132
125
121
126
129
129
126
131
128
126
131
125
116
114
125
121
126
136
125
129
141
128
133
141
127
108
122
122
122
141
129
115
120
125
115
118
125
128
147
138
134
133
125
127
130
124
112
119
135
128
126
139
131
118
124
133
125
129
134
127
121
130
132
148
149
131
139
135
107
118
133
131
119
125
126
117
119
116
102
119
123
119
119
131
129
127
140
142
124
139
145
125
114
120
112
123
135
117
122
149
128
122
148
123
122
144
123
110
110
107
129
143
137
138
121
127
127
124
124
124
138
131
121
125
131
142
132
143
130
135
130
120
121
120
126
136
134
146
138
134
120
116
118
115
121
129
127
137
136
130
132
137
116
108
129
137
111
122
144
132
114
123
110
115
106
105
102
114
134
129
136
120
130
120
131
125
136
121
129
147
147
150
160
130
132
145
143
116
116
122
133
111
116
112
111
135
140
120
137
122
119
132
109
128
118
103
144
133
115
151
122
100
137
98
115
142
128
142
126
148
140
134
149
170
142
137
155
143
151
183
160
49
118
138
206
221
180
109
64
71
64
75
100
90
77
83
79
85
89
93
83
74
99
92
106
102
100
124
96
77
116
139
140
156
130
137
172
146
155
154
181
186
169
215
206
150
166
178
176
182
196
186
186
205
199
200
174
165
158
126
133
148
133
145
140
124
143
113
97
111
90
99
104
95
93
112
109
127
104
94
90
49
41
45
37
52
92
94
66
67
69
36
50
51
43
50
61
51
65
81
94
99
113
121
127
124
114
103
115
116
115
144
161
139
166
165
139
135
173
178
176
173
195
197
198
188
182
182
189
197
193
199
191
190
199
193
182
181
184
180
185
197
155
165
185
162
158
164
143
179
169
133
126
143
142
125
137
133
101
134
139
103
119
106
98
115
102
109
82
114
117
99
92
106
100
74
83
119
116
101
96
106
94
89
89
92
52
67
93
76
84
82
93
96
89
75
73
88
94
48
71
87
63
63
61
19
19
84
86
42
84
96
86
96
101
113
146
122
115
124
119
111
122
145
142
148
180
185
186
190
177
180
168
205
211
187
198
215
202
190
204
201
181
177
166
143
194
172
191
186
175
193
187
187
182
163
185
176
169
178
152
167
161
138
138
135
152
121
129
131
103
116
133
126
126
132
111
108
95
75
75
89
89
82
94
114
119
97
86
95
98
98
80
78
100
103
99
109
112
83
91
108
96
118
145
102
107
130
114
124
116
100
129
140
117
117
122
122
122
142
138
137
143
166
168
131
133
140
124
123
138
131
110
121
121
125
121
92
133
121
112
136
173
123
119
154
133
110
122
140
119
142
145
130
116
95
91
121
110
105
123
130
92
130
136
89
97
124
123
120
101
113
106
89
129
112
97
116
153
160
145
147
153
115
88
97
101
107
95
83
92
85
86
106
87
88
113
111
109
121
110
119
93
117
125
145
157
133
124
139
116
125
145
149
136
158
190
184
174
207
216
181
197
175
155
186
201
183
176
172
182
158
155
151
128
142
144
155
163
160
140
153
147
114
136
143
126
134
137
152
133
129
153
136
128
140
122
130
141
141
124
145
147
120
123
129
144
130
120
133
118
96
110
111
126
139
140
127
129
137
141
104
99
123
117
82
88
103
92
111
121
103
105
116
117
133
90
94
106
100
100
109
117
87
91
84
79
68
96
108
112
109
109
105
120
140
132
94
105
133
104
114
148
104
87
143
130
107
131
126
105
103
126
127
122
128
131
142
128
112
113
146
126
148
120
128
125
128
127
126
141
106
102
140
152
137
157
158
150
127
121
117
126
144
137
146
157
144
159
165
174
173
179
154
148
146
140
115
109
123
109
97
121
110
111
132
99
89
116
127
124
124
137
112
130
129
116
122
144
107
83
116
109
92
133
136
129
139
135
130
162
174
176
173
155
128
140
174
164
152
160
151
171
170
133
141
130
127
131
161
163
105
142
157
82
93
124
103
115
137
108
129
119
109
122
106
113
116
93
108
127
129
115
130
129
101
105
120
114
100
117
113
95
92
104
121
115
132
146
95
116
140
114
126
149
118
101
121
130
105
104
166
121
89
112
143
128
126
142
129
126
128
149
142
111
123
129
91
94
128
127
120
121
127
128
135
147
156
126
109
131
130
130
142
125
109
143
148
116
113
144
139
120
123
128
153
156
130
148
156
129
136
134
138
141
153
149
149
168
133
130
123
123
148
132
130
137
133
154
160
153
139
120
105
115
131
121
149
116
114
151
164
160
150
151
130
130
128
133
127
132
139
107
103
113
107
111
109
90
91
98
109
112
113
125
111
104
116
107
93
111
103
92
92
99
96
112
130
129
116
136
142
136
160
164
174
150
140
149
163
136
121
151
165
156
151
141
137
148
144
126
143
150
117
129
155
103
104
111
114
106
142
141
113
138
129
102
116
114
98
105
108
110
118
126
119
126
100
82
109
117
88
106
127
107
85
116
110
114
126
117
115
119
118
144
147
125
110
101
115
131
129
140
134
108
118
136
137
123
122
153
156
152
147
131
121
119
127
115
111
97
104
143
149
117
124
149
148
123
147
138
144
141
140
135
140
148
158
136
139
144
119
133
133
119
115
125
135
153
158
152
136
129
108
125
144
117
129
164
146
144
154
130
115
142
131
123
133
131
127
152
150
129
132
127
102
119
121
135
146
142
145
149
137
137
138
135
134
131
141
144
145
120
127
129
120
108
105
96
99
72
67
97
97
85
103
103
97
100
106
92
76
94
102
113
108
85
85
115
137
136
129
140
143
131
145
159
157
148
161
157
131
176
183
142
162
141
138
173
142
127
152
163
155
147
141
125
133
133
104
64
107
133
117
128
134
120
138
139
96
102
118
94
130
121
107
112
126
140
114
91
110
115
83
102
130
118
123
133
130
115
117
139
141
121
97
127
144
116
128
146
129
127
121
124
146
140
118
110
122
129
122
146
139
130
137
141
118
93
132
129
126
115
114
110
129
149
144
139
154
136
119
119
128
119
120
147
129
147
154
148
140
127
120
125
127
143
117
132
142
155
168
146
144
144
98
93
125
121
136
150
129
131
152
148
126
122
121
124
150
132
104
109
132
135
123
115
116
109
111
135
158
142
135
147
166
128
122
149
147
130
147
144
123
121
131
114
121
117
108
102
113
101
93
89
88
100
117
118
118
99
99
103
93
101
111
109
124
103
99
119
119
131
130
147
134
115
129
130
146
131
130
135
170
163
146
151
133
143
156
133
132
160
151
149
163
168
137
134
141
100
83
100
117
114
112
154
126
116
137
116
107
113
108
128
138
123
127
147
128
108
105
111
105
92
83
91
137
135
121
133
142
138
128
122
139
128
99
118
135
145
148
140
113
96
130
122
133
141
127
105
98
123
123
134
129
133
104
113
123
107
109
122
137
139
119
127
144
128
117
145
116
111
127
117
126
134
131
138
148
156
136
145
140
123
136
144
135
126
153
149
152
169
157
158
169
130
96
124
134
105
124
151
163
134
123
147
122
145
129
114
143
130
90
130
116
75
92
158
133
112
119
101
129
145
125
129
119
142
148
139
124
141
147
133
127
129
143
135
109
106
102
110
128
108
101
120
133
134
109
114
112
122
110
82
108
91
110
121
93
98
88
111
122
97
123
130
133
146
115
129
125
134
152
133
157
149
135
167
181
160
143
171
154
130
160
162
163
171
143
152
152
114
115
95
107
116
108
116
131
143
133
108
113
93
102
138
127
112
146
126
110
122
122
96
88
108
106
87
100
110
122
137
148
131
135
138
134
131
101
122
148
156
132
134
140
140
127
114
111
131
150
127
120
132
124
115
131
129
108
122
108
98
118
110
119
118
149
148
113
105
138
124
117
137
111
99
142
138
123
131
150
136
139
162
153
129
117
155
146
132
140
147
151
166
153
139
129
142
146
104
80
110
141
135
146
166
139
136
126
116
127
136
137
130
147
142
119
121
124
112
114
125
93
90
123
137
131
139
149
141
141
129
136
153
138
118
153
158
121
126
122
100
114
116
94
104
124
134
131
127
137
123
101
96
107
108
87
115
78
102
122
119
83
86
116
100
104
108
126
117
111
125
119
125
137
128
139
157
145
158
179
163
159
169
154
139
156
162
152
162
157
147
144
131
131
116
98
109
121
139
122
123
153
139
118
121
101
117
138
139
126
129
133
139
128
100
88
119
101
82
104
119
103
138
152
138
120
137
129
113
125
136
130
120
126
129
136
143
118
115
114
120
127
145
136
112
122
127
123
111
115
102
117
119
115
121
111
132
135
118
135
118
122
130
123
135
136
129
129
112
113
131
129
131
132
130
130
137
157
144
137
145
137
131
148
142
163
151
135
140
117
134
128
114
119
120
141
154
147
128
148
146
126
111
115
138
139
132
138
125
132
131
126
112
84
91
115
114
118
146
160
134
127
135
141
141
156
131
131
153
151
139
134
127
127
110
98
117
107
110
138
134
128
147
133
114
103
100
111
92
102
98
72
101
115
105
99
101
97
120
122
113
106
115
100
104
129
121
132
125
119
136
134
154
156
157
156
155
155
163
171
173
167
160
148
130
142
142
114
137
138
130
123
122
134
116
122
130
110
112
116
139
141
127
148
131
123
142
123
97
79
107
109
107
111
111
123
133
120
125
112
110
126
139
133
117
117
125
110
124
130
127
111
123
128
134
139
119
117
110
118
124
125
119
117
131
135
111
131
120
124
132
119
134
141
130
132
132
117
117
122
121
126
129
121
116
121
127
140
140
148
136
141
163
162
149
144
153
139
135
143
138
130
135
135
133
130
136
132
112
134
136
127
141
132
120
131
144
132
118
135
119
122
125
108
115
129
130
115
119
124
117
129
136
127
131
144
147
142
146
149
145
134
131
135
129
127
134
131
124
128
131
133
125
118
123
124
117
118
115
108
108
105
112
91
99
107
110
103
95
100
104
111
100
91
95
100
106
110
104
113
127
126
125
135
137
145
145
155
158
158
161
162
167
161
159
153
143
137
142
144
144
136
126
137
127
121
136
139
124
133
132
123
125
126
121
115
111
118
115
114
110
114
120
119
118
112
106
110
105
111
111
120
127
126
121
126
132
123
135
140
144
138
141
141
141
137
123
127
124
118
128
121
117
127
132
130
111
114
118
116
116
114
115
120
119
128
123
123
132
125
130
133
123
123
121
126
128
128
126
125
128
131
137
143
139
134
141
137
139
142
150
138
137
135
150
150
132
130
143
139
135
137
141
136
137
132
129
133
138
126
127
134
130
122
117
121
120
117
118
119
119
121
122
118
119
121
116
120
129
140
135
138
144
152
149
147
142
140
138
130
131
128
133
128
113
107
113
117
109
103
101
98
91
93
91
91
98
99
98
106
108
111
108
103
107
115
124
136
135
133
135
140
138
141
143
138
141
147
147
150
158
160
158
157
150
149
153
148
147
144
141
144
142
134
133
137
129
124
126
125
126
125
122
116
115
117
117
113
110
110
108
106
106
108
107
110
114
111
118
118
113
113
115
114
114
115
118
124
129
134
134
136
136
131
130
130
132
133
130
130
135
136
135
134
131
130
130
129
129
129
131
126
128
131
133
133
131
132
132
132
128
130
132
129
129
130
123
123
128
131
127
122
124
123
122
128
125
123
124
122
123
125
125
127
129
126
126
126
127
128
128
131
130
130
131
133
134
134
134
130
128
130
132
132
135
133
132
134
134
134
133
131
132
132
132
137
139
141
138
133
137
141
141
139
139
137
137
136
134
131
127
123
119
117
111
110
107
103
104
103
100
104
109
112
111
114
115
113
114
113
113
115
116
115
116
116
119
120
123
124
128
134
134
137
144
144
144
146
149
149
149
151
150
148
148
145
145
145
142
142
139
138
133
129
126
123
124
124
120
118
122
122
119
119
117
116
116
115
115
115
118
118
116
115
117
118
116
117
119
120
121
117
118
119
117
115
113
118
121
119
117
119
122
121
122
121
122
125
124
126
125
128
131
129
129
131
132
132
131
136
137
136
137
138
140
139
140
143
141
138
135
136
134
136
136
135
134
134
134
133
133
135
136
133
133
134
132
132
129
130
130
127
126
124
125
123
122
122
121
121
119
116
116
117
118
118
120
122
123
124
128
124
124
128
131
131
132
132
132
132
133
134
135
134
135
135
135
136
137
136
139
137
136
138
139
138
138
136
134
135
136
133
132
131
127
128
127
125
122
120
120
119
118
119
121
119
122
122
120
121
120
121
119
119
118
116
116
116
114
117
114
115
116
114
117
118
118
121
124
125
125
123
125
128
125
123
126
127
125
126
125
125
128
127
124
121
124
125
125
123
123
125
126
127
127
129
131
131
129
129
131
133
133
131
131
131
131
132
131
131
132
131
129
127
128
128
129
130
130
128
131
133
129
130
131
130
131
133
132
132
134
134
132
131
132
131
130
129
127
127
128
128
126
128
127
129
130
128
126
129
128
128
128
127
127
128
128
127
125
128
125
125
128
126
127
129
130
128
126
127
129
130
129
128
129
127
125
127
125
124
127
126
125
124
126
125
124
123
120
120
122
119
120
123
124
122
121
122
122
123
123
122
122
124
123
125
124
122
122
125
124
126
128
127
129
131
130
132
135
134
134
131
132
139
135
140
139
137
142
136
137
138
134
133
135
134
131
133
135
131
132
130
132
128
129
130
129
128
128
128
125
122
126
123
121
125
121
125
122
121
123
122
122
125
121
125
125
125
125
124
125
124
124
123
122
125
122
125
125
124
125
126
124
125
126
124
124
124
124
127
125
123
125
125
125
126
125
125
125
129
125
128
128
125
125
126
127
128
128
130
127
129
129
128
131
133
131
129
131
132
130
133
134
133
134
131
132
134
131
130
129
126
127
127
126
126
123
126
123
123
123
125
125
124
124
125
122
123
123
122
123
124
123
124
125
124
126
124
124
126
125
127
130
128
129
128
128
129
128
129
130
128
130
131
131
132
131
132
129
133
130
129
130
129
128
129
127
129
128
128
129
126
130
127
127
128
126
127
128
126
125
124
125
126
126
126
126
124
125
125
125
127
126
128
129
130
129
130
130
130
130
130
131
131
130
132
130
127
130
128
129
128
126
127
126
126
126
128
128
128
129
127
128
126
126
127
128
126
127
128
127
127
126
125
128
126
128
129
126
128
128
129
128
128
128
128
127
126
128
125
125
124
126
126
125
125
126
126
125
125
125
124
124
123
124
125
125
125
126
126
124
126
126
125
124
124
127
125
128
128
127
129
128
128
129
128
128
130
130
130
131
131
131
133
133
132
132
132
132
131
132
131
131
130
130
129
127
128
128
126
125
126
125
126
126
126
126
126
125
123
125
124
123
125
124
124
125
124
125
125
125
125
125
124
125
126
128
127
127
126
126
128
127
127
126
126
126
127
128
128
129
128
129
128
127
128
127
127
128
127
129
128
128
128
130
128
128
129
128
127
127
129
128
128
129
130
130
130
130
129
128
129
129
130
130
131
130
130
131
131
132
130
128
129
128
128
127
128
127
126
127
127
125
125
125
123
122
124
124
124
125
124
125
124
125
124
125
125
124
125
126
125
125
125
127
127
126
126
126
127
127
127
129
128
127
128
128
128
128
127
128
126
127
126
126
128
128
128
128
128
127
127
128
128
125
126
126
127
128
128
127
128
127
127
127
128
128
127
128
128
128
128
129
127
128
128
127
128
127
128
128
128
128
127
129
130
129
129
131
129
129
129
129
128
129
129
129
129
128
128
128
127
126
126
126
126
128
127
126
126
126
126
126
126
127
126
126
127
126
126
126
126
126
127
125
126
127
125
127
127
126
127
127
126
126
125
126
127
125
126
127
126
126
127
127
126
127
127
127
127
126
126
128
128
128
129
128
129
129
129
130
129
130
130
130
130
129
129
129
130
129
129
129
129
128
129
129
129
129
129
130
130
129
128
128
129
128
128
128
128
127
127
127
126
126
126
126
126
125
124
125
125
125
125
124
124
125
124
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
125
126
126
126
126
128
128
126
127
127
128
128
127
128
128
128
128
128
129
128
128
129
128
128
128
129
129
129
131
130
130
130
129
129
130
129
129
130
129
129
129
128
129
128
128
128
128
127
126
126
127
126
127
127
127
127
126
126
126
126
126
126
125
126
126
126
125
125
125
126
126
125
126
126
126
126
125
125
125
125
126
126
126
126
126
127
127
127
127
128
128
127
128
128
128
129
127
127
128
128
128
128
128
128
128
128
128
129
128
129
130
128
129
129
128
129
128
129
128
127
128
129
130
129
128
128
128
128
128
128
127
127
128
127
127
127
127
127
126
127
126
125
126
126
125
126
126
126
126
126
127
127
127
126
126
127
127
127
128
127
126
127
127
126
126
127
127
127
128
127
127
128
127
126
126
126
126
127
127
126
127
127
127
127
127
127
127
127
127
127
126
127
127
127
126
127
127
126
127
126
126
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
127
129
129
129
128
129
128
129
129
128
129
129
129
128
129
127
127
128
129
128
128
128
127
128
128
127
127
127
128
127
128
127
127
127
127
128
127
125
126
127
126
126
126
127
126
126
126
126
125
126
126
125
126
126
125
126
126
126
126
126
126
127
126
126
126
126
127
128
127
127
127
127
127
128
128
127
128
127
127
128
128
128
129
129
128
128
130
129
129
129
128
128
129
129
128
129
128
129
128
128
128
128
128
128
128
128
128
127
127
127
126
127
126
125
127
127
126
126
126
125
126
126
125
125
126
126
126
125
126
126
127
126
127
126
126
127
126
126
127
127
127
127
127
127
126
127
127
126
127
127
127
127
128
127
128
128
128
128
128
128
127
128
128
128
129
128
128
128
127
128
128
128
128
129
128
127
128
128
127
128
128
127
128
128
128
128
127
127
127
127
128
128
128
128
127
127
127
126
127
127
126
127
127
126
126
126
126
126
126
126
126
127
127
126
127
126
126
127
126
126
127
127
127
127
128
128
127
128
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
126
126
127
128
128
127
126
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
127
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
126
127
126
126
127
127
127
127
128
127
126
127
127
127
127
127
126
126
127
127
127
127
126
127
127
126
126
127
127
127
128
127
127
127
127
127
126
127
127
127
127
127
127
128
128
127
128
128
128
128
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
127
128
129
128
127
128
127
127
126
126
127
127
127
127
127
126
127
127
127
126
126
127
126
126
126
127
127
127
127
126
127
127
126
127
127
126
126
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
129
128
127
127
128
128
128
127
128
128
128
128
128
129
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
126
126
126
126
127
127
127
127
128
127
127
127
127
126
127
127
128
127
126
127
126
126
127
127
127
127
127
127
127
127
127
128
128
126
128
128
127
127
127
127
127
127
127
128
128
127
128
127
127
127
128
128
127
127
128
127
127
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
128
127
127
126
127
127
128
127
128
128
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
128
127
127
127
126
127
127
126
127
126
127
127
127
127
128
127
126
127
127
127
127
127
127
126
126
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
129
129
128
127
129
128
128
128
128
127
127
128
128
127
128
128
128
128
127
128
128
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
126
126
126
126
127
126
127
127
127
126
127
127
127
128
127
127
127
126
127
127
126
127
127
126
127
127
127
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
127
127
127
127
128
128
128
127
126
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
126
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
127
127
127
128
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
128
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
128
127
127
128
127
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
128
127
126
127
127
127
127
127
128
128
127
128
127
127
127
127
127
127
126
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
127
126
127
127
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
126
126
127
127
127
128
128
127
127
127
127
127
128
128
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
126
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
126
127
127
128
128
128
127
127
127
127
127
128
127
126
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
127
127
128
127
127
128
127
127
127
127
126
126
126
127
127
126
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
126
127
127
127
127
127
114
72
108
135
144
166
178
223
162
192
161
121
98
90
90
87
90
90
93
44
50
30
82
117
144
150
166
237
182
200
75
99
148
193
115
135
188
121
141
160
122
122
171
173
161
155
117
100
66
141
168
130
126
85
145
142
150
140
114
52
28
65
77
111
84
94
107
120
88
52
57
98
113
125
115
126
145
174
207
203
190
168
192
198
224
217
185
155
154
170
170
187
157
122
110
108
119
119
109
106
98
98
103
72
37
52
71
96
105
110
58
14
55
155
112
79
70
82
135
141
158
162
156
170
184
178
181
170
196
202
184
172
168
170
105
115
164
142
137
140
112
118
118
90
81
73
83
66
70
74
85
56
47
48
75
101
94
94
114
160
147
162
141
141
165
175
171
190
188
184
163
178
176
166
184
184
151
194
190
193
170
158
117
102
77
82
84
81
75
58
61
73
101
117
78
65
97
106
85
153
114
109
121
107
116
113
102
110
134
136
158
155
165
171
176
185
216
181
179
158
135
157
143
155
141
140
155
154
132
111
110
116
119
113
88
82
85
90
75
90
70
39
58
63
93
80
116
152
146
156
135
173
126
137
140
155
154
142
169
199
171
149
162
151
139
107
115
99
126
150
125
154
131
120
115
138
122
142
96
100
136
145
120
137
107
119
114
93
76
117
94
104
100
111
129
136
122
105
122
119
147
96
117
113
129
155
146
148
148
163
146
156
149
139
121
140
155
134
134
118
128
143
133
123
129
127
114
121
112
93
76
131
98
126
122
126
127
123
130
124
133
110
119
137
151
140
111
125
135
137
159
160
166
130
163
155
144
177
117
133
126
103
116
106
115
113
147
98
134
139
117
149
144
118
131
132
113
130
122
97
95
123
90
140
125
119
124
118
124
127
116
132
137
122
151
144
146
142
146
126
136
118
146
132
133
139
134
134
123
138
126
116
167
118
108
125
105
106
110
88
76
74
100
94
101
112
130
109
140
133
139
121
160
159
153
136
125
127
133
127
137
113
149
125
147
130
148
155
164
172
130
163
131
152
164
142
149
134
114
121
121
115
112
100
113
92
99
113
91
122
86
106
85
94
84
92
88
88
107
115
114
146
146
146
136
143
163
170
161
162
187
174
175
165
162
162
153
165
142
133
141
120
126
109
137
85
131
103
102
97
92
111
93
92
84
89
94
98
102
114
116
96
122
103
123
115
126
129
131
144
127
139
138
142
153
151
163
163
154
144
150
150
143
151
160
138
146
161
149
134
151
144
132
138
129
107
115
112
102
96
89
87
96
84
83
84
90
88
90
97
104
99
98
126
114
127
127
145
139
140
143
151
154
166
153
156
169
173
167
154
185
169
169
158
180
160
146
151
141
144
130
125
121
102
107
107
92
99
105
96
112
106
95
101
106
98
124
122
106
109
106
117
119
101
119
123
111
138
125
146
139
135
141
156
142
152
150
148
151
140
159
158
144
144
137
140
125
125
132
119
123
131
137
121
134
139
118
120
117
118
104
109
98
94
100
100
112
104
113
117
118
138
141
138
134
131
133
141
124
132
138
129
130
137
131
134
126
132
128
126
124
128
137
134
132
141
141
144
141
146
131
128
127
128
131
124
139
118
137
111
128
114
116
116
123
105
126
116
116
121
116
133
136
131
122
131
140
120
145
140
140
144
136
136
142
145
135
131
131
116
117
109
118
105
98
108
106
102
110
103
116
120
100
126
128
114
129
134
132
133
144
137
130
145
140
136
134
144
135
130
142
138
141
136
135
144
133
132
133
125
138
129
118
113
119
112
110
114
123
111
100
121
114
115
120
117
126
112
114
113
112
118
112
122
111
121
124
117
126
124
135
150
142
152
149
155
153
162
154
149
162
147
141
146
135
139
127
121
128
130
130
128
120
117
119
111
114
103
98
105
116
116
120
115
111
102
109
111
122
118
121
133
142
135
144
135
136
133
139
150
142
144
136
139
135
130
131
122
119
126
151
137
118
124
134
117
124
124
104
129
129
115
112
115
121
129
123
131
124
113
121
121
136
125
126
131
133
136
136
140
135
144
136
143
135
137
131
144
131
131
141
129
125
130
119
121
119
117
120
117
112
121
119
118
115
116
118
112
114
116
111
108
120
112
130
136
127
132
135
141
145
141
139
140
143
133
124
129
111
131
147
144
123
128
137
146
139
136
128
127
120
126
124
122
117
120
119
120
112
127
131
135
131
134
130
121
113
122
115
118
123
117
119
133
129
124
131
138
127
135
128
132
121
121
129
123
120
123
123
117
121
131
132
137
137
131
133
129
128
126
130
127
123
125
119
124
131
125
124
127
120
130
131
139
132
131
131
127
136
131
126
119
123
113
128
129
123
126
136
122
139
143
134
137
127
130
130
125
121
121
114
117
121
122
122
118
118
132
130
133
127
128
128
125
126
116
125
119
119
125
123
119
122
128
131
130
133
133
138
137
137
137
136
127
128
123
121
113
125
129
129
123
143
134
137
133
136
135
130
122
133
131
130
131
129
124
128
131
121
117
123
112
123
116
120
111
111
106
123
130
124
109
120
114
126
129
131
138
140
127
135
134
138
133
122
128
129
135
133
131
131
137
136
135
129
130
134
126
132
127
129
126
129
125
128
120
133
130
128
127
125
126
131
123
120
121
119
121
123
132
117
119
120
121
125
118
128
127
139
130
134
136
127
124
128
132
125
124
129
122
120
119
134
126
126
130
124
136
133
130
134
131
136
132
132
122
136
124
124
127
120
123
132
127
121
126
128
127
131
126
124
129
115
120
121
122
123
128
123
123
126
125
128
122
128
129
131
124
129
124
135
132
134
130
128
133
130
134
127
128
132
119
124
129
128
123
129
127
122
126
128
129
119
126
122
124
118
123
120
119
122
123
119
122
126
133
133
133
135
132
129
133
130
134
130
138
126
126
127
128
135
128
136
127
129
130
129
129
132
127
130
126
125
128
122
127
128
120
125
120
127
122
127
126
130
137
131
130
126
126
132
122
129
125
134
133
130
124
127
130
119
127
124
127
126
124
125
127
135
128
134
129
130
119
129
131
117
130
124
125
123
120
124
128
128
124
120
126
121
123
120
128
119
126
125
128
126
129
128
126
135
134
133
133
134
134
128
123
129
133
135
131
134
128
129
132
125
123
122
130
121
121
121
118
123
125
120
121
117
123
127
127
124
128
131
132
133
135
130
132
126
131
134
126
131
129
128
127
132
132
132
125
127
124
131
127
124
122
131
118
122
123
119
117
117
124
118
122
120
126
121
127
128
130
131
131
133
129
132
127
127
130
129
131
129
129
123
133
131
137
131
134
141
136
133
140
131
135
128
129
127
125
119
129
121
126
125
122
128
123
120
123
122
125
121
122
124
121
123
126
122
119
122
122
118
122
122
123
121
128
124
129
132
132
132
130
130
131
132
136
130
131
130
135
133
133
131
135
132
131
132
128
129
136
130
129
129
128
130
126
128
126
121
121
123
119
125
120
124
120
124
124
119
123
122
122
119
126
121
129
125
128
130
130
128
133
129
131
131
128
131
128
130
133
137
131
129
138
131
130
130
132
134
130
127
126
127
129
124
127
125
127
121
125
127
126
128
128
125
125
122
117
126
121
119
124
120
120
124
125
123
127
128
127
126
130
126
128
130
132
130
130
127
132
129
131
130
131
130
131
127
127
132
129
126
128
128
129
125
125
128
125
124
124
123
123
120
125
126
127
125
126
125
125
127
126
126
128
127
129
124
127
130
130
129
130
128
128
129
133
126
129
130
131
131
128
133
131
127
130
128
129
127
129
128
130
128
127
129
123
127
129
125
126
124
128
127
126
125
125
122
125
124
131
126
129
126
131
130
130
129
127
128
130
130
128
131
128
128
130
127
131
128
126
127
127
126
126
128
125
127
126
129
126
125
126
128
128
125
124
124
127
125
126
124
122
127
126
126
127
124
125
123
129
126
130
128
126
128
130
127
130
133
128
131
131
129
130
130
129
130
129
130
126
128
124
127
125
121
123
125
125
123
126
124
126
128
127
126
130
125
129
129
130
125
128
129
128
131
130
128
128
130
131
128
130
129
128
127
126
128
127
126
127
125
126
128
126
128
125
129
128
129
127
127
126
130
128
130
128
130
127
130
129
130
130
127
128
130
130
130
129
128
128
126
128
126
128
127
129
129
129
129
127
129
128
127
127
126
125
126
126
124
124
125
125
123
124
124
124
125
123
127
124
128
127
126
127
124
127
124
126
122
128
124
129
128
129
128
129
130
128
130
130
129
129
129
130
127
126
126
127
126
129
127
130
129
127
128
126
127
128
125
125
126
127
125
125
122
125
123
124
125
125
128
128
127
127
128
127
127
128
127
127
129
127
129
129
131
131
131
131
129
133
129
130
130
129
130
128
127
127
127
128
129
129
126
125
126
128
127
127
127
128
128
126
125
126
125
126
125
127
127
127
128
128
127
128
128
125
126
128
127
126
129
126
127
125
128
128
128
129
128
124
128
127
127
126
124
124
128
125
125
126
123
124
126
127
127
128
125
128
125
126
127
123
128
127
130
124
128
129
127
129
126
126
129
127
128
127
125
127
126
126
127
128
127
129
128
126
127
130
126
129
126
128
129
127
129
126
126
128
129
125
127
129
127
127
132
126
129
129
127
128
127
128
127
127
128
131
127
128
129
125
128
130
128
129
128
128
127
130
128
129
127
126
128
126
128
126
126
129
128
127
127
127
124
129
124
128
128
128
126
130
127
127
126
128
127
127
127
128
127
129
127
129
127
127
127
126
126
128
124
126
124
125
126
123
125
125
123
125
126
125
124
128
127
127
128
126
128
129
128
126
128
128
128
129
128
126
129
127
130
126
127
128
126
128
127
128
127
129
127
127
127
128
129
125
128
126
127
127
128
126
127
125
127
128
128
126
125
130
128
127
127
129
126
129
126
128
128
129
127
131
127
132
129
130
129
129
129
130
127
129
128
127
127
126
127
126
127
125
128
127
128
127
127
124
125
125
126
127
127
125
128
125
128
127
127
128
127
127
129
128
126
128
128
128
128
126
127
127
128
127
125
126
126
126
128
125
124
126
126
125
127
126
126
127
129
129
127
129
128
127
128
128
127
127
125
124
125
125
126
125
126
125
129
125
128
126
126
128
125
125
126
127
128
128
127
127
127
127
126
127
129
127
128
128
128
129
128
126
129
128
127
127
125
126
128
128
128
130
126
128
128
126
130
127
129
129
127
129
128
127
127
129
126
127
127
126
126
131
128
129
130
127
127
129
127
127
126
129
128
128
128
129
128
127
129
128
127
127
128
127
127
125
128
127
127
127
127
127
128
127
126
125
128
129
127
125
126
125
127
128
127
126
127
126
128
129
127
129
130
126
128
127
125
125
125
125
125
126
125
126
125
127
126
127
127
128
125
124
126
125
127
128
124
129
129
127
127
127
127
126
129
126
129
127
127
128
126
126
125
127
126
129
128
127
129
129
128
131
128
128
127
128
127
127
128
127
128
128
129
127
129
128
127
127
127
126
127
127
126
127
128
128
125
128
127
128
127
129
128
129
127
129
130
128
129
126
127
129
126
128
127
127
129
129
127
127
128
128
127
128
125
128
127
127
126
127
126
127
129
127
127
128
128
129
127
127
130
128
129
127
128
125
129
126
127
126
125
126
128
125
126
126
125
128
126
127
124
126
127
126
127
128
126
127
129
130
127
127
129
125
128
127
127
126
126
127
128
125
129
126
126
125
126
125
127
126
128
129
129
126
127
126
127
125
126
125
127
127
129
131
129
127
128
127
125
126
126
128
128
127
129
128
126
128
129
127
130
130
126
127
125
126
127
129
128
126
129
126
126
126
131
127
124
125
128
128
132
132
129
127
128
126
130
131
126
127
130
130
134
134
125
125
127
124
129
126
126
128
126
127
126
124
123
125
130
125
124
125
127
128
127
126
125
127
125
122
123
127
128
126
127
126
128
130
128
131
130
132
128
129
129
128
125
125
130
133
129
126
129
128
126
127
128
118
116
122
131
129
126
122
127
127
125
125
127
123
121
130
129
132
127
126
132
114
113
134
133
121
137
133
126
139
135
113
131
120
129
140
127
116
133
123
133
143
135
108
122
130
133
141
133
121
127
128
134
140
132
118
129
128
133
139
132
124
124
118
132
140
125
118
113
119
131
138
137
114
113
126
141
139
122
112
129
138
130
120
119
135
126
126
113
135
132
116
113
128
133
130
123
120
131
126
125
130
140
118
116
117
125
134
145
125
125
133
132
119
116
124
121
136
125
111
137
144
120
125
118
128
137
119
140
120
115
127
127
127
122
112
125
121
132
138
132
135
128
136
128
118
139
132
123
139
126
127
127
125
127
123
127
124
113
121
146
131
129
133
123
132
142
137
142
133
131
135
135
134
141
128
124
115
119
128
116
131
132
112
116
133
124
111
121
142
118
89
116
141
128
145
138
108
128
133
130
137
103
115
150
159
137
112
110
106
131
126
109
112
139
139
132
94
93
105
136
161
140
132
132
129
150
142
125
135
147
155
144
129
107
115
139
144
117
107
119
130
144
127
116
113
138
156
120
99
124
129
122
105
114
134
165
132
106
107
129
133
123
115
114
111
131
136
160
123
126
145
136
118
116
121
119
132
127
117
142
169
142
92
113
131
107
112
138
113
126
115
107
123
138
119
141
171
140
131
169
131
103
157
143
100
119
150
122
127
160
136
126
136
123
109
107
107
129
115
128
125
130
126
78
121
126
123
132
154
146
141
162
143
137
146
136
127
145
131
118
150
136
146
158
118
111
140
158
139
114
123
118
109
128
89
101
129
115
124
147
122
110
114
120
134
124
106
113
109
143
108
124
123
116
140
136
126
98
95
142
141
136
120
114
114
113
107
94
109
134
137
126
115
117
116
106
143
112
76
133
144
127
135
130
124
144
147
122
127
131
124
103
100
128
130
116
143
105
124
152
144
125
109
123
118
108
108
124
142
118
135
114
123
146
152
131
129
139
159
145
131
156
158
173
163
124
115
151
157
140
129
148
142
135
137
155
109
117
136
128
108
138
125
141
155
127
130
148
121
125
130
114
126
145
129
99
133
126
82
94
125
132
123
139
121
95
144
156
114
126
121
112
139
120
125
132
135
130
124
123
109
132
139
144
141
126
115
138
134
136
134
135
120
134
143
125
95
115
114
119
100
97
109
133
122
140
137
114
97
109
95
83
114
122
85
108
125
126
133
101
79
119
159
131
129
143
109
157
183
149
121
140
139
134
166
134
122
171
174
149
127
146
166
162
124
121
102
114
154
145
113
110
119
129
120
121
144
132
106
150
145
105
107
123
111
92
99
130
115
139
156
103
108
130
131
129
124
132
137
113
123
144
122
118
124
126
102
101
144
162
127
114
154
122
104
142
136
143
115
114
122
145
149
138
123
110
109
114
108
128
141
109
115
156
117
97
145
106
69
120
136
84
119
160
98
123
124
86
117
131
133
133
125
116
143
160
145
150
143
142
142
162
160
124
137
164
163
124
115
155
142
140
114
132
108
109
155
138
96
116
144
142
128
133
126
128
136
140
129
116
130
135
126
97
120
110
118
163
149
103
113
154
141
135
152
128
118
125
121
148
128
105
120
129
95
121
157
119
88
128
128
100
92
128
128
124
121
105
106
133
137
144
125
105
92
113
124
123
133
118
107
118
132
128
119
121
106
101
138
118
89
134
138
114
141
129
101
119
132
155
132
118
125
146
163
161
150
144
147
158
168
138
124
147
171
155
128
130
138
130
144
124
104
98
137
139
117
118
108
103
137
135
107
117
129
120
125
120
114
106
123
122
124
125
131
163
134
118
133
156
126
138
152
133
127
128
133
141
138
134
114
111
113
135
137
98
109
131
119
129
117
107
128
125
128
112
116
131
138
148
117
98
102
128
119
138
121
98
119
117
137
127
110
126
113
106
104
111
94
127
143
108
132
119
90
132
146
123
120
137
117
136
149
157
147
144
153
168
140
133
143
144
154
147
128
128
143
137
159
125
111
123
127
129
128
96
115
147
136
126
124
137
130
135
125
112
117
120
126
114
121
108
136
167
128
137
114
123
122
124
146
115
120
110
126
144
131
101
116
113
116
137
117
104
135
112
125
154
115
87
136
144
132
120
136
138
126
144
145
101
98
137
130
142
122
119
116
101
142
127
105
118
142
98
90
127
101
109
153
115
136
114
97
133
134
131
118
135
114
120
169
154
140
135
168
163
120
151
137
137
161
140
142
122
135
154
150
131
108
118
120
120
143
117
95
119
144
140
118
130
139
119
127
126
112
114
143
142
116
103
130
137
131
160
134
111
124
130
129
145
142
117
126
140
124
117
128
134
103
131
123
104
138
130
109
138
137
83
87
146
131
144
124
123
138
127
132
138
84
112
132
148
144
121
118
109
126
138
112
107
133
125
95
95
118
85
121
147
117
114
110
123
127
121
136
140
95
144
156
133
137
158
167
141
134
157
147
154
142
141
146
115
145
154
151
131
119
126
116
121
126
114
121
122
144
139
122
138
140
126
122
118
107
116
159
128
91
110
142
92
141
164
123
107
142
124
97
140
154
115
135
116
110
124
147
122
113
126
103
128
142
110
120
133
122
100
93
129
140
147
130
131
133
117
142
145
92
105
138
147
140
119
105
142
137
127
119
125
109
111
93
112
84
100
157
127
109
119
110
124
127
128
143
128
114
126
136
128
148
159
137
145
152
146
143
139
138
131
139
122
123
143
155
150
138
114
118
129
132
117
125
113
129
148
124
125
143
145
117
104
119
110
141
128
94
119
123
110
149
135
124
123
151
130
102
130
150
149
126
127
112
115
141
127
125
101
119
133
133
125
116
120
117
105
97
122
114
139
151
131
124
125
143
149
128
123
131
148
154
141
122
128
136
136
111
106
108
108
101
90
92
79
106
149
129
113
117
128
109
101
149
160
125
122
156
121
126
151
168
129
127
136
149
149
147
141
131
134
110
133
143
148
153
128
115
133
130
111
130
130
110
132
128
116
134
134
131
133
129
112
122
144
119
92
122
131
113
112
146
147
122
139
132
108
118
143
128
130
114
133
148
119
128
139
133
139
151
135
121
122
135
110
90
104
119
128
128
124
100
114
130
136
93
95
105
129
135
124
130
117
124
136
126
123
107
124
133
88
101
114
113
145
155
132
126
145
130
101
146
153
149
128
135
124
120
146
157
136
117
117
156
152
127
133
119
127
125
108
123
130
136
150
128
119
124
113
130
134
116
112
131
125
120
149
137
130
130
115
131
140
117
103
139
125
114
142
152
126
116
150
133
96
131
159
153
135
110
123
145
129
125
124
107
126
162
128
123
115
116
133
125
117
122
137
163
135
106
113
116
108
119
113
91
105
125
108
126
126
128
137
145
129
118
143
147
108
99
110
118
139
161
150
131
144
141
116
137
153
130
143
139
121
120
140
163
145
112
119
140
140
134
144
101
111
115
84
132
112
120
150
112
107
120
106
115
131
124
113
116
131
106
122
140
122
116
126
116
124
139
108
107
140
100
89
145
126
126
120
136
114
113
153
152
121
152
140
158
180
138
141
150
137
140
142
145
120
141
136
115
101
113
127
130
143
117
100
93
128
124
77
91
101
100
123
127
125
109
131
167
142
104
125
146
169
157
129
113
138
152
165
161
146
143
147
152
130
112
128
152
131
128
141
123
139
142
114
121
167
138
121
125
104
119
125
107
107
114
135
132
100
138
127
99
116
115
114
106
135
121
101
128
115
121
121
110
103
142
133
109
118
121
106
109
141
125
109
137
134
132
127
127
155
115
134
141
133
141
153
141
127
121
141
140
113
108
127
103
117
144
112
120
130
132
103
101
130
110
73
100
100
97
135
134
122
111
130
155
127
114
101
125
175
156
131
146
162
196
161
114
136
157
151
140
144
140
150
148
148
120
116
159
140
124
142
130
156
159
132
112
123
117
125
144
115
94
120
125
113
135
121
97
128
135
109
133
110
108
109
112
129
106
133
133
102
131
119
113
121
91
110
149
120
111
124
145
129
139
139
139
124
115
143
134
146
159
138
137
141
141
145
158
116
94
122
127
107
109
132
96
119
129
104
113
102
94
107
94
102
115
132
126
116
136
141
121
111
109
141
150
151
133
139
137
152
180
167
116
135
144
152
147
141
123
133
145
161
124
146
157
108
140
144
110
118
154
130
128
120
117
127
141
122
113
110
110
106
135
112
84
119
122
115
131
104
113
103
109
128
111
125
137
115
143
149
116
96
122
128
135
127
117
125
139
131
141
149
138
116
123
138
128
150
163
150
140
128
139
126
150
160
100
110
121
115
102
113
116
108
120
124
99
104
101
108
109
77
108
129
144
115
121
138
109
105
144
109
129
144
169
139
135
149
149
172
160
121
137
148
164
166
141
119
142
158
129
131
156
134
127
159
126
102
125
160
132
129
117
123
132
125
122
134
117
115
136
115
89
96
138
114
116
135
106
115
110
115
116
109
143
129
123
151
139
105
108
127
120
109
135
136
123
129
135
160
124
115
129
115
123
155
149
125
134
147
121
124
169
136
95
121
114
92
101
134
121
113
136
123
99
111
99
95
112
97
126
140
116
117
147
117
88
124
127
108
154
146
161
149
142
154
135
168
172
128
141
136
171
157
137
148
148
122
124
144
147
118
157
135
105
102
139
141
130
134
105
111
145
129
111
120
116
120
123
107
102
104
120
125
139
124
108
113
115
126
106
136
135
131
148
136
120
113
141
117
109
141
143
136
135
125
142
140
110
119
135
108
119
153
147
131
142
156
119
135
159
122
103
115
114
93
111
114
126
117
121
121
98
103
112
93
85
101
123
130
115
126
131
114
111
124
112
108
146
146
162
149
133
148
150
145
177
151
126
135
170
146
146
166
133
126
128
146
147
139
148
126
114
106
131
144
128
133
124
124
137
124
115
127
127
118
102
106
113
114
114
130
142
115
106
129
109
110
106
113
130
134
124
141
131
125
125
127
113
123
142
147
145
119
119
144
124
107
133
138
104
126
154
149
121
159
145
128
154
156
109
103
115
120
98
120
102
123
147
126
111
99
120
108
75
90
91
103
137
121
121
121
104
122
125
113
120
132
146
153
149
141
147
153
151
172
152
117
147
163
150
158
155
141
126
145
130
154
141
118
104
110
136
120
140
132
112
126
138
119
114
133
138
105
110
111
111
107
118
126
128
126
129
122
119
121
115
116
123
113
139
148
141
139
136
106
96
135
133
136
137
108
124
139
125
117
136
138
100
125
154
139
137
159
149
151
153
133
119
114
114
123
120
92
113
124
148
123
92
95
113
102
73
93
94
98
141
131
107
106
113
128
117
120
109
125
148
149
134
134
153
149
166
151
139
150
155
174
163
142
138
134
137
128
145
162
134
130
102
133
134
114
138
130
112
134
132
126
125
125
130
102
119
106
102
116
128
120
117
120
133
133
128
128
117
115
120
124
147
119
134
149
124
110
101
117
118
139
137
105
131
134
109
127
142
134
93
114
151
138
131
150
162
159
151
146
128
111
119
150
122
94
128
134
131
131
101
89
112
99
79
91
100
101
117
133
99
101
127
123
116
116
102
135
158
133
135
138
137
141
155
159
137
153
156
151
170
149
135
138
147
133
132
155
139
137
122
114
148
113
107
138
144
119
131
135
113
119
150
140
89
102
116
115
143
123
102
121
123
130
146
130
113
114
121
118
138
136
114
131
150
127
108
107
116
114
134
134
130
112
118
126
138
127
132
123
103
140
136
123
147
172
133
141
142
108
135
151
121
89
124
144
126
125
115
105
108
101
77
102
93
96
128
110
83
118
145
105
124
135
88
141
145
118
133
148
133
146
161
144
145
177
145
139
165
128
135
164
152
106
136
166
155
136
121
115
102
140
127
117
139
137
144
147
119
126
153
136
101
115
123
118
137
133
96
113
124
128
135
111
119
111
108
112
118
118
131
159
122
116
121
96
103
117
141
118
128
134
130
119
114
142
118
91
122
135
115
137
161
122
132
142
141
111
140
148
111
126
142
156
127
143
151
128
121
124
125
126
128
132
137
124
111
132
129
128
139
109
107
123
178
233
167
158
99
44
58
69
69
72
74
111
89
60
91
107
88
107
141
126
120
131
126
119
107
113
140
134
172
158
146
123
124
152
175
153
189
166
149
204
180
181
164
175
168
166
188
187
172
178
178
170
160
146
154
159
150
143
114
132
134
131
148
133
101
126
109
92
97
80
71
105
92
90
95
88
96
103
78
85
66
45
74
86
90
116
76
95
95
39
58
79
60
73
56
76
91
67
85
93
95
89
100
106
112
120
101
111
128
135
130
140
148
140
154
154
156
147
173
185
187
185
170
178
186
183
199
191
172
202
204
207
175
173
204
182
183
210
171
212
217
184
164
201
173
170
193
179
156
158
153
177
167
161
142
108
115
103
101
112
87
120
101
58
84
73
81
83
88
70
73
96
90
83
90
51
51
75
86
95
71
69
71
81
121
109
82
74
89
99
86
80
81
107
122
108
106
101
91
106
103
90
78
100
127
117
123
94
85
95
106
106
107
122
123
99
91
123
122
128
134
124
110
101
140
135
126
151
157
180
158
182
199
180
181
160
147
195
218
164
154
152
165
180
167
170
177
175
171
183
158
170
205
193
167
159
162
198
179
197
201
139
138
168
157
149
149
147
130
115
105
102
115
129
112
119
105
94
109
102
79
87
75
82
71
65
99
87
101
106
82
90
110
114
89
84
90
83
106
130
93
120
134
127
151
132
120
115
107
121
133
130
110
142
150
118
108
107
145
144
119
123
126
143
137
137
119
114
134
132
118
119
109
124
123
123
131
148
151
145
146
150
148
139
148
138
153
149
119
121
151
112
116
139
108
104
138
133
106
127
133
110
103
120
136
114
125
144
137
116
100
113
128
107
129
130
89
98
121
142
121
89
102
107
120
121
103
106
98
118
123
87
93
115
121
137
136
124
107
133
166
131
131
125
117
134
151
150
132
123
174
164
146
149
146
142
131
148
150
142
129
140
168
144
138
134
127
152
124
138
127
135
151
157
146
144
129
139
119
146
139
106
126
138
142
132
152
155
149
164
143
137
137
139
152
166
128
129
133
131
129
114
116
120
123
137
131
119
134
126
104
111
144
121
116
138
137
116
124
136
132
124
117
132
113
99
112
133
129
108
102
82
117
134
122
105
106
102
91
106
91
103
119
114
142
115
109
112
129
122
126
130
118
111
134
139
127
106
145
143
123
136
149
96
116
163
117
101
134
124
119
150
115
82
116
136
106
121
113
124
126
140
145
106
100
123
110
126
115
93
99
131
122
114
137
147
138
157
135
115
128
130
131
163
146
130
133
114
133
132
104
126
136
121
129
153
137
117
141
148
112
145
153
124
145
161
144
123
126
137
119
127
140
121
121
133
154
148
116
107
151
147
141
126
104
107
123
100
119
127
115
137
123
114
117
115
143
136
129
134
118
124
149
152
139
142
147
148
148
147
160
122
131
153
135
123
142
135
130
138
141
129
108
109
120
129
112
133
137
122
147
145
93
119
122
122
117
115
106
104
118
125
135
140
146
135
139
135
123
112
133
143
141
137
109
106
112
121
113
107
128
98
117
137
115
124
129
123
125
124
127
130
141
135
126
130
122
114
126
120
111
115
112
111
140
121
106
109
111
131
118
115
111
92
108
101
91
110
113
126
129
115
110
126
109
130
135
129
127
133
121
129
140
145
148
146
149
148
162
153
131
156
146
132
138
144
140
137
161
160
121
111
137
132
117
131
142
120
136
142
139
120
120
123
124
100
122
98
120
128
134
141
138
151
139
134
132
122
108
118
141
143
124
94
114
99
111
141
107
91
128
151
120
131
142
123
121
139
141
143
145
139
131
125
123
143
127
118
129
116
98
120
150
131
118
125
119
127
127
130
114
87
111
88
106
114
103
151
122
116
117
120
109
115
145
125
127
137
112
134
141
143
140
135
133
149
155
147
151
135
127
128
143
142
132
135
154
144
125
108
136
118
125
145
128
112
127
136
137
114
118
125
114
121
123
82
112
126
130
117
130
138
134
141
125
109
110
137
149
114
101
133
106
83
121
134
93
112
146
132
124
146
130
121
134
133
147
148
138
136
142
140
131
149
128
109
138
124
88
119
135
142
136
125
117
105
124
126
105
75
99
84
99
119
114
141
127
116
127
107
108
120
142
142
138
146
125
135
153
144
150
142
136
147
161
160
170
149
131
133
142
137
133
148
130
122
134
123
134
119
147
138
106
129
118
115
145
136
128
121
112
127
118
94
123
114
123
137
130
126
135
158
137
109
114
115
121
131
129
127
114
104
99
116
131
105
128
131
113
133
144
121
118
137
130
136
154
151
130
124
136
153
144
122
125
136
99
98
131
119
130
133
119
101
105
131
136
90
76
86
100
102
95
131
105
107
138
108
97
118
133
137
123
136
126
111
140
136
146
154
138
139
165
184
174
140
127
132
140
147
150
150
115
126
142
127
131
138
154
143
115
126
132
136
153
136
143
118
117
149
121
97
124
123
137
115
111
131
125
160
144
99
108
117
123
122
132
121
101
97
106
116
127
120
134
114
114
133
136
117
141
134
141
132
135
142
139
116
142
155
131
128
141
128
106
111
113
110
131
110
113
119
113
118
144
98
77
99
124
91
100
143
110
115
122
103
114
128
146
126
130
136
131
112
132
147
154
135
144
127
147
181
166
142
130
121
140
156
162
131
113
110
137
150
117
141
144
145
116
111
121
130
144
166
143
109
105
148
127
90
119
109
120
114
125
123
125
147
153
112
97
118
129
129
134
123
102
91
115
116
120
122
136
120
115
123
134
127
138
141
117
126
147
151
141
107
138
156
140
139
161
128
115
131
121
109
115
123
140
121
112
115
146
111
82
121
111
84
119
123
89
107
119
99
111
116
118
138
136
130
134
132
107
132
152
143
157
142
135
159
182
165
151
135
126
128
157
161
131
110
107
123
141
114
141
136
139
116
108
126
129
142
157
147
118
106
145
138
97
128
125
118
120
140
116
123
155
145
133
107
131
122
140
141
104
109
101
99
124
114
121
129
119
121
115
115
129
150
131
130
133
143
138
96
122
134
121
157
155
118
117
140
120
106
110
121
137
139
116
107
126
126
108
114
96
113
113
109
121
123
105
115
119
124
104
140
158
117
119
140
120
116
143
147
149
147
138
152
173
155
163
156
115
147
167
151
135
118
95
134
145
123
138
138
134
128
116
119
121
147
159
149
136
115
113
132
104
118
117
108
128
139
120
123
148
142
128
128
139
113
143
121
101
102
106
131
105
111
139
114
106
109
127
142
133
135
130
114
131
155
126
113
121
117
130
162
136
123
119
125
136
111
97
138
143
140
132
120
101
121
139
107
82
121
115
114
122
113
111
104
109
130
116
123
135
153
138
113
132
128
125
144
157
142
130
161
167
151
159
165
123
133
146
154
137
97
117
132
120
136
132
137
131
125
130
124
122
138
159
148
152
124
104
127
123
122
110
114
117
134
117
132
131
113
136
142
119
113
166
130
95
114
101
119
115
106
130
122
100
115
114
136
132
136
138
114
126
146
118
129
119
105
124
160
140
121
135
123
126
124
125
129
119
129
139
131
98
106
145
111
99
116
104
94
101
119
127
109
109
124
135
116
129
148
134
121
136
129
114
138
155
132
130
148
138
152
186
146
132
139
150
152
140
112
121
131
106
127
163
119
139
150
126
111
139
143
145
142
163
133
112
129
130
119
123
115
109
122
134
126
126
128
126
151
141
113
125
138
133
117
98
91
116
111
103
116
103
109
125
116
127
131
134
141
127
119
120
118
143
115
110
139
135
132
138
137
127
122
144
140
122
138
140
146
143
94
101
147
118
106
134
101
104
122
114
117
120
114
108
118
114
107
148
144
106
133
129
118
138
113
144
155
122
154
184
141
150
150
130
132
122
124
122
117
131
125
144
142
131
112
135
127
123
140
149
147
144
145
118
111
124
124
127
118
111
129
128
134
133
126
135
143
135
140
152
126
122
121
93
110
121
114
89
115
117
106
116
115
121
125
133
142
126
131
120
126
134
101
120
141
116
141
150
128
127
128
141
139
132
150
119
138
136
94
109
132
110
116
127
97
115
87
107
120
113
129
129
117
119
124
143
122
129
115
116
134
118
118
139
148
118
120
165
147
145
158
145
141
133
132
146
132
142
134
151
134
101
154
142
137
155
133
135
159
159
136
120
111
110
120
134
120
120
129
135
138
126
124
143
150
130
117
131
112
91
138
124
100
97
102
119
101
99
104
100
116
111
136
119
105
133
134
120
129
125
113
128
140
131
112
151
165
119
128
136
125
130
148
145
112
113
141
136
113
111
113
121
120
112
112
116
128
131
129
113
81
111
123
119
108
92
114
133
147
130
115
115
121
148
139
139
147
133
161
167
155
140
130
148
135
129
135
137
140
144
150
138
134
144
143
128
129
122
132
129
132
130
111
101
111
127
130
128
137
133
130
137
134
132
126
131
132
112
98
117
131
126
123
117
101
98
122
116
114
106
121
121
118
117
122
125
119
124
127
130
143
148
145
141
142
124
133
142
131
137
137
141
136
134
123
119
120
121
126
129
118
114
117
110
105
107
97
84
94
103
101
114
126
119
125
127
118
127
136
129
125
135
138
138
147
148
153
148
131
139
144
140
138
143
147
140
145
146
136
132
137
139
138
141
140
141
139
130
134
138
125
131
138
128
131
129
128
128
131
128
110
111
123
123
119
117
113
110
115
119
111
106
112
114
110
110
116
116
107
111
120
115
104
119
126
118
121
122
135
139
137
142
137
130
138
150
140
128
130
132
133
131
127
126
123
121
118
120
118
113
114
111
110
111
112
117
124
123
122
123
126
125
122
128
134
137
136
136
131
131
131
130
133
131
136
140
132
135
139
143
139
130
130
125
128
132
129
131
133
136
133
132
133
136
137
133
131
127
130
133
129
129
130
127
127
130
132
130
132
131
125
124
128
128
122
124
122
118
117
123
122
118
117
120
118
121
123
123
121
121
125
122
115
120
123
120
120
125
129
132
131
129
126
126
129
128
127
124
125
132
126
118
122
120
117
114
117
120
120
126
125
126
126
122
121
124
126
125
127
129
129
127
131
133
135
134
133
133
131
132
133
136
137
134
138
138
133
134
132
127
129
128
128
129
131
133
131
135
136
135
133
131
133
131
126
123
121
123
124
125
131
131
127
126
127
126
125
125
123
127
127
124
125
122
119
119
114
118
122
121
124
124
123
123
126
129
122
122
125
120
118
121
120
120
123
124
124
128
129
129
127
130
132
134
131
126
126
129
126
120
120
121
128
127
124
125
125
126
127
128
128
127
131
132
131
127
126
126
125
128
132
134
134
134
135
131
128
135
132
128
130
129
131
129
128
129
129
127
123
128
127
127
133
131
128
134
133
128
132
128
121
127
129
125
126
128
132
129
127
127
130
129
128
133
132
128
131
129
126
127
126
125
122
126
125
122
128
127
127
128
127
126
129
128
126
124
124
123
123
122
121
123
123
121
125
125
123
128
125
123
127
125
122
123
123
120
123
123
121
122
124
122
119
124
124
125
128
127
127
128
129
130
130
128
127
131
129
126
131
133
131
135
137
134
133
133
132
132
132
130
129
132
130
129
133
131
127
130
131
127
130
133
129
129
129
129
129
129
128
125
127
130
125
126
126
128
127
126
128
128
126
125
127
126
122
124
126
126
126
125
125
123
124
125
127
127
123
125
129
126
126
126
127
127
128
127
126
128
129
129
130
128
130
128
130
129
127
127
129
128
127
127
126
122
124
128
123
123
125
128
123
124
126
123
125
126
125
127
125
126
131
128
127
128
125
124
129
128
126
127
134
130
128
131
129
128
130
131
128
126
128
131
130
127
128
129
128
127
127
129
129
131
130
129
128
130
130
128
128
126
128
133
132
131
127
127
127
128
128
127
129
128
128
129
128
127
128
128
127
126
126
128
129
128
128
127
127
127
127
128
127
126
126
126
127
127
126
126
125
125
126
125
126
127
127
128
128
126
125
125
125
124
124
126
127
126
126
125
123
124
125
124
124
125
128
128
128
128
128
129
129
129
129
127
129
130
129
130
132
132
132
132
129
131
130
133
130
132
127
131
129
128
130
130
126
128
126
127
127
130
127
125
127
125
127
129
127
126
125
128
126
124
127
125
126
124
125
127
127
124
129
125
124
128
130
127
127
128
127
129
130
130
129
129
129
129
132
128
134
131
129
128
129
128
131
130
131
131
128
131
129
130
126
129
129
127
129
129
125
129
127
125
126
127
125
127
125
124
125
124
124
128
126
126
124
127
124
125
125
124
126
125
125
124
126
128
126
129
128
129
131
128
129
130
130
128
128
128
128
128
129
129
128
127
128
128
130
130
127
128
129
130
129
128
129
128
129
129
129
127
128
127
129
127
126
128
128
129
127
129
128
126
127
129
128
129
126
127
126
129
128
128
127
128
129
128
129
129
127
128
129
125
127
128
128
126
127
128
125
127
127
128
128
128
127
127
126
127
127
126
126
125
126
127
128
127
126
124
126
125
126
127
127
126
125
128
127
124
128
128
127
128
126
126
129
130
130
132
130
129
131
131
129
130
128
127
129
129
129
129
128
127
129
128
128
129
129
128
128
128
126
128
127
127
125
125
126
125
126
126
124
124
127
126
126
128
126
126
127
127
126
128
127
127
127
128
127
129
128
129
128
128
128
129
130
130
128
130
129
128
128
129
129
129
129
129
130
129
129
130
130
130
130
128
128
128
128
128
127
127
126
126
127
125
125
125
125
125
126
125
125
125
125
125
124
124
124
125
126
125
124
125
127
127
129
127
127
127
127
128
127
127
127
126
127
127
128
128
128
128
128
128
128
129
129
128
130
129
128
128
129
128
128
129
128
128
128
127
128
128
128
128
128
127
128
127
127
127
126
127
127
128
126
127
128
128
128
127
128
127
126
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
128
128
128
127
127
128
128
127
128
127
127
127
126
127
127
128
126
127
127
126
127
126
127
126
126
127
127
126
127
126
127
127
128
127
127
127
128
128
128
128
128
128
128
128
127
127
128
127
127
127
128
128
128
128
127
126
127
127
127
127
127
127
127
128
127
126
127
127
126
126
126
126
127
127
126
126
126
126
126
126
126
126
126
126
126
127
128
128
127
128
127
127
127
127
127
128
127
127
128
128
128
128
129
128
128
129
128
128
127
128
128
128
128
129
128
128
127
127
127
126
126
127
127
127
126
126
126
126
126
126
126
125
126
127
126
126
126
125
126
126
126
126
126
126
127
126
127
127
126
127
127
126
127
126
127
126
127
127
126
127
127
128
127
126
127
127
127
128
128
127
128
127
127
127
127
128
128
127
127
127
127
127
128
128
127
128
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
126
127
127
127
127
127
126
127
127
128
128
127
127
127
126
126
127
127
127
127
127
126
126
127
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
127
126
127
128
127
128
128
128
127
127
127
126
126
127
127
125
126
126
126
127
126
126
125
125
126
126
126
126
127
127
125
126
126
126
126
126
125
125
126
126
126
127
127
126
126
126
127
127
126
128
126
126
127
128
128
127
128
127
126
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
126
127
127
127
128
127
126
127
127
126
127
127
126
127
127
127
127
127
127
126
126
126
126
127
126
127
127
126
126
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
126
127
127
128
127
127
126
127
127
128
128
127
127
128
127
126
127
128
128
128
127
128
127
127
128
127
126
126
127
127
128
127
127
126
125
126
126
126
127
127
126
127
127
127
126
126
127
126
126
126
127
127
126
127
127
126
127
128
126
126
127
127
126
127
128
128
127
128
127
127
126
127
127
127
127
127
127
127
128
128
127
127
127
127
128
127
128
127
127
128
127
128
128
127
128
128
127
127
127
128
128
127
126
127
128
128
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
126
126
126
127
128
127
127
127
127
127
128
128
126
127
128
128
127
128
127
128
127
126
126
127
128
129
128
127
128
128
127
128
127
127
127
126
127
127
126
127
128
127
127
128
127
127
128
127
126
127
127
127
127
128
127
125
126
127
126
126
126
127
127
127
128
127
126
127
127
127
127
127
127
127
126
126
126
127
128
127
128
127
127
127
127
127
127
128
128
126
127
128
128
127
127
127
127
127
128
127
127
127
128
128
128
128
127
127
128
126
127
127
128
128
128
127
128
128
128
128
128
127
128
127
128
127
127
128
128
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
126
127
126
126
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
126
127
128
127
127
128
128
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
126
127
127
127
127
127
126
127
127
127
127
126
127
127
127
128
126
126
127
127
127
127
126
127
127
126
126
127
127
127
128
127
127
128
128
128
128
127
127
128
128
128
128
129
128
128
127
127
128
128
128
128
127
128
128
128
128
128
127
128
128
127
127
128
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
127
127
127
128
127
128
127
127
127
127
127
127
128
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
128
128
128
127
127
128
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
126
127
127
127
127
127
127
127
127
127
128
127
127
128
127
126
128
128
127
128
128
127
128
128
128
128
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
126
126
126
127
127
127
127
126
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
128
128
127
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
127
127
127
126
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
128
128
127
127
127
127
127
128
128
127
128
127
126
127
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
127
127
127
127
127
128
127
127
128
128
127
127
128
127
128
127
126
127
128
128
128
127
126
128
128
128
128
127
126
127
127
127
127
127
128
127
127
127
127
127
127
127
126
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
128
128
127
127
128
128
128
129
128
127
126
127
128
129
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
127
127
128
127
126
127
127
127
127
128
127
127
128
127
127
128
127
128
127
127
127
127
127
128
127
127
126
126
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
128
129
128
127
128
128
127
127
127
127
127
127
128
128
127
128
127
126
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
126
127
126
127
128
127
127
127
127
127
127
127
128
127
126
127
126
127
127
127
127
127
127
128
129
128
128
128
127
127
128
127
128
128
127
127
127
127
127
128
127
127
128
127
128
128
127
127
127
127
126
127
127
128
127
127
127
127
128
128
127
127
127
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
128
128
127
128
127
127
128
127
127
127
127
127
128
127
127
127
128
127
127
127
128
128
128
128
127
127
127
128
128
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
128
128
127
128
128
127
128
128
128
128
128
127
127
127
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
128
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
128
128
127
127
128
127
127
128
128
127
128
127
127
127
127
127
127
127
127
127
126
127
128
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
127
127
127
127
127
128
128
127
128
127
127
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
126
126
127
127
127
127
126
127
127
127
127
127
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
128
127
128
127
126
127
127
127
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
128
127
128
128
127
127
127
127
127
126
127
127
128
128
127
127
128
127
127
127
127
128
128
127
128
127
128
128
128
127
127
127
127
127
127
126
127
127
127
127
128
127
126
126
127
127
128
124
70
105
127
141
144
147
163
195
217
177
163
117
100
98
84
88
88
88
74
6
56
64
112
152
142
170
171
174
180
89
145
150
175
129
162
199
120
128
143
111
136
148
169
159
142
129
147
90
98
130
136
118
107
105
133
124
143
148
107
28
22
59
80
107
127
105
116
63
86
80
83
117
129
116
122
137
153
190
213
215
205
168
197
223
215
213
141
156
187
176
161
110
95
123
129
127
119
116
93
110
101
81
91
71
62
80
108
87
67
27
16
69
98
86
67
122
122
137
147
144
155
180
164
193
185
174
188
197
203
177
170
174
154
98
86
143
163
150
110
84
105
109
77
83
73
85
103
81
60
70
48
39
86
103
110
89
98
120
129
165
159
156
160
144
169
182
179
182
199
197
166
156
164
166
193
199
196
180
151
148
141
114
124
106
82
65
24
35
76
50
83
78
100
113
90
86
100
126
92
99
126
95
109
93
122
137
143
147
170
161
178
200
195
204
199
184
170
165
141
132
164
138
160
149
165
164
123
133
136
131
124
105
79
75
77
60
87
68
95
38
66
67
98
86
112
98
125
144
142
153
133
95
135
134
144
166
171
179
150
175
177
172
142
166
156
144
155
150
162
159
133
109
116
108
112
122
83
111
87
98
99
127
76
115
96
84
84
92
107
94
78
92
103
118
109
111
137
126
117
144
131
173
163
172
152
154
165
166
148
165
160
167
157
155
138
163
141
145
135
162
113
131
99
106
111
105
74
102
89
87
72
92
91
87
107
92
99
110
132
115
137
115
120
130
100
140
106
159
143
173
179
169
178
185
180
173
178
176
159
151
133
141
129
139
119
121
110
112
107
106
91
107
114
111
108
78
101
94
89
91
90
99
98
118
121
128
107
140
136
127
143
133
133
144
152
137
135
164
169
181
144
149
151
152
147
152
153
138
138
143
144
144
129
123
136
113
95
104
94
87
92
91
80
106
92
102
95
100
128
103
122
121
115
122
107
131
136
116
137
127
138
143
159
157
156
150
167
148
141
137
135
139
140
150
140
129
136
125
119
132
135
104
108
97
103
93
102
113
93
105
109
112
93
119
122
127
144
107
131
125
136
154
138
142
139
150
164
169
158
157
147
163
160
168
127
133
138
163
133
151
128
139
117
129
105
105
97
107
100
93
101
105
103
102
100
104
95
89
106
108
98
105
94
118
120
106
122
136
127
141
131
154
148
152
158
140
162
156
161
149
160
142
160
149
146
148
149
139
145
123
141
118
120
98
109
96
117
100
87
88
96
96
96
103
92
101
88
126
93
110
130
119
130
124
141
147
143
148
147
138
142
152
154
155
153
157
147
158
141
166
153
141
146
138
144
143
149
118
124
131
130
121
118
100
104
110
100
114
109
103
89
114
113
111
105
119
115
125
142
123
123
126
133
137
141
134
141
139
152
138
147
142
157
140
146
140
136
141
131
130
126
132
132
133
110
125
115
122
128
108
112
112
113
119
116
99
96
100
111
108
106
105
104
121
120
120
131
131
127
144
154
133
140
148
154
147
150
152
140
150
151
144
143
146
136
141
136
125
134
121
125
126
121
110
122
106
124
113
120
101
107
111
113
103
112
116
109
114
113
117
114
109
124
129
128
132
133
134
136
138
156
150
153
131
154
141
149
150
148
144
142
148
144
127
131
131
128
134
118
112
109
109
107
103
108
99
107
107
109
100
104
124
109
114
113
122
112
133
126
127
122
137
136
137
138
139
143
141
152
143
141
145
141
140
149
138
137
134
145
138
124
121
128
124
118
117
111
108
115
122
119
115
110
117
109
108
111
110
110
109
114
114
125
121
115
127
132
129
137
134
138
142
152
149
153
149
140
145
142
145
140
145
136
132
135
128
126
127
127
122
114
119
114
115
119
108
122
110
116
113
124
115
109
116
109
113
115
113
117
120
126
143
135
143
140
142
149
145
151
156
156
145
148
133
138
136
128
126
129
140
129
125
116
130
124
106
127
115
107
118
112
114
106
110
116
115
111
128
127
123
113
124
130
129
132
132
132
139
138
145
137
137
135
141
140
144
137
137
138
140
142
144
128
126
117
117
123
118
112
113
113
118
114
109
108
119
118
122
115
112
116
120
120
125
128
124
130
130
137
136
138
136
137
143
141
130
118
129
136
143
143
140
125
139
149
136
139
128
125
124
127
123
125
121
116
118
115
114
120
124
130
123
120
134
134
113
109
111
122
130
120
119
127
129
133
136
139
142
141
138
134
129
131
123
127
129
123
124
127
124
132
134
136
135
124
131
125
124
116
126
121
117
112
115
121
116
126
119
130
121
123
135
129
127
131
130
135
136
116
131
124
128
119
120
133
130
128
137
144
142
138
140
135
134
132
129
131
127
123
122
121
122
116
122
123
130
132
127
137
128
122
128
119
114
113
113
121
118
110
117
121
124
133
138
133
145
132
137
132
140
131
131
126
127
127
129
126
124
130
127
137
141
132
129
135
127
121
129
122
121
125
129
116
124
123
123
126
121
118
127
123
120
123
119
115
126
120
130
128
127
117
130
126
128
138
139
138
129
137
141
138
132
127
124
133
126
127
132
129
127
129
125
124
131
127
126
121
129
123
121
119
120
121
126
119
122
120
124
119
130
128
132
126
130
125
131
124
131
132
139
129
131
130
129
136
134
135
130
137
129
130
129
130
129
127
133
128
125
124
116
124
122
123
122
119
130
123
126
126
129
127
132
128
124
127
125
135
128
131
125
127
123
126
128
129
131
128
124
127
131
129
127
128
121
127
125
130
124
125
130
126
133
126
124
129
127
131
126
121
124
125
128
127
125
128
127
126
131
131
127
125
128
124
121
121
126
129
121
127
130
129
123
131
129
129
126
130
126
120
124
127
128
124
133
136
127
126
132
132
135
129
131
130
130
131
123
132
131
135
123
132
128
127
127
132
131
128
126
128
123
119
126
121
127
120
131
117
120
127
122
121
126
129
126
125
128
125
133
132
126
127
130
136
130
135
132
129
131
132
128
132
129
130
128
136
132
131
127
132
126
130
126
124
123
126
126
126
125
122
126
121
123
121
125
127
126
128
129
125
124
129
129
128
125
129
131
131
124
135
128
133
126
132
130
128
123
123
126
129
125
130
122
129
130
125
126
124
122
127
122
123
120
128
123
127
119
122
125
125
125
125
126
127
125
130
128
124
131
129
126
128
132
134
133
129
133
130
133
134
132
125
133
129
128
128
131
124
131
127
126
127
123
125
124
122
115
126
121
121
120
128
123
126
127
126
130
125
130
124
131
125
126
131
128
127
130
131
126
131
138
131
132
134
129
131
132
131
123
126
128
129
126
131
128
126
133
128
126
128
124
127
123
125
123
127
123
124
123
122
129
123
127
124
126
125
126
127
125
122
128
126
127
126
127
126
131
129
129
133
128
127
134
129
129
125
129
128
130
132
128
129
129
131
127
129
126
126
127
126
130
127
126
122
126
124
129
123
123
123
125
125
123
124
127
125
125
129
125
127
129
129
131
127
129
129
130
131
130
128
129
129
126
135
129
133
130
130
128
130
133
130
125
126
127
126
125
123
121
123
126
123
125
122
123
126
126
123
124
126
127
125
123
127
126
125
127
128
125
130
130
133
129
130
133
130
129
130
132
128
130
126
131
130
130
123
128
127
128
126
127
127
124
121
126
126
124
125
125
121
121
121
124
125
125
123
125
124
127
124
129
127
129
127
127
130
125
131
129
130
130
129
129
130
129
130
131
129
129
129
131
127
127
129
129
128
127
126
126
128
129
127
127
126
126
128
124
125
124
125
126
125
124
125
125
126
124
125
127
125
126
123
129
126
129
129
126
126
129
129
129
131
130
132
132
128
133
131
131
133
131
130
130
131
125
128
123
125
126
126
124
125
128
126
123
125
126
127
126
123
126
125
124
125
125
125
124
127
128
125
127
124
129
126
129
126
130
127
128
129
129
129
131
129
129
130
131
129
127
131
129
130
129
128
128
128
124
126
122
122
122
121
121
120
124
123
127
124
128
124
127
127
129
129
127
127
131
126
129
129
127
130
129
131
128
129
131
130
130
133
131
127
127
129
127
129
128
128
127
130
130
128
128
127
126
127
125
127
129
124
126
129
127
126
128
126
125
123
126
129
127
126
129
127
127
129
130
130
132
130
128
128
128
129
129
131
130
129
130
130
127
127
128
128
126
126
127
127
126
128
125
124
124
126
126
125
125
125
125
126
123
123
124
126
125
124
127
128
127
127
130
126
130
129
130
127
128
128
126
127
126
127
127
129
128
129
126
128
126
127
126
127
127
127
128
129
126
124
126
125
126
124
127
126
127
127
127
127
128
129
127
129
128
130
129
127
128
130
131
129
129
128
130
129
131
127
128
126
126
128
128
127
127
128
127
127
127
127
127
127
129
129
126
126
126
126
126
126
125
128
125
127
130
128
128
128
129
130
130
127
127
129
128
127
130
128
127
128
129
129
130
126
128
127
125
127
127
125
126
125
126
126
125
124
126
126
126
128
127
129
124
124
125
127
126
127
126
127
126
128
126
126
127
128
127
128
130
126
128
129
128
127
127
126
127
125
127
127
129
124
128
127
127
126
126
126
126
127
125
126
124
128
128
125
128
128
128
127
130
130
129
128
129
128
126
127
128
128
128
127
130
128
129
129
128
128
129
130
129
127
128
128
129
128
128
125
128
127
126
126
127
129
127
127
127
128
126
126
126
128
129
128
126
129
128
128
127
127
128
128
129
127
130
128
127
128
128
126
126
126
129
126
126
126
126
126
127
125
126
126
125
127
127
127
126
128
128
127
127
124
128
126
126
125
127
127
127
130
126
128
126
128
128
128
125
127
127
129
126
127
125
127
127
126
126
126
127
126
127
127
126
127
127
126
125
127
127
128
127
126
129
129
127
128
127
128
127
126
126
127
127
126
126
127
128
128
128
127
128
127
129
128
127
129
130
126
129
128
127
129
129
128
127
130
127
125
127
126
126
129
127
128
127
128
128
127
128
128
129
130
129
128
128
127
126
126
125
127
128
127
127
127
130
127
127
127
127
127
129
129
126
128
127
126
128
124
127
126
128
127
127
128
128
128
127
126
126
124
125
125
125
126
126
126
126
126
128
128
127
127
128
126
126
128
125
127
128
126
127
128
128
125
125
126
126
126
127
128
128
128
127
128
129
129
130
128
128
128
129
127
127
128
126
128
127
126
125
127
127
126
125
128
128
128
129
126
127
127
128
129
128
130
130
130
128
127
128
127
126
127
128
126
129
128
129
128
129
127
127
125
126
128
127
126
127
126
127
128
127
126
126
127
129
128
127
128
128
126
128
125
127
128
127
128
127
128
127
128
128
128
129
128
129
128
129
127
127
126
125
126
128
124
126
126
126
127
127
127
127
126
126
126
126
128
125
127
126
127
127
126
126
126
129
127
128
128
126
127
127
127
127
123
125
126
126
127
129
130
130
130
128
128
125
126
126
125
126
129
127
126
126
127
126
129
128
129
128
127
129
128
126
127
126
129
126
127
127
125
126
129
128
128
128
127
126
127
127
129
129
129
128
129
127
127
127
125
128
127
129
128
128
128
127
127
127
126
126
126
125
127
129
129
129
130
126
127
126
127
127
128
130
128
128
128
125
127
126
126
127
126
127
126
127
125
126
127
126
127
127
127
125
127
128
128
129
128
128
128
128
128
129
127
128
128
127
127
128
126
126
126
128
128
129
127
125
125
126
125
126
126
126
128
126
126
126
127
126
126
124
126
126
125
128
128
129
129
129
128
125
128
128
128
127
127
131
129
131
128
125
127
127
128
125
126
129
128
127
127
128
129
129
124
125
127
119
124
132
120
128
133
127
127
134
130
125
128
121
130
128
131
144
135
132
130
114
118
120
116
121
124
128
136
150
131
121
127
124
115
117
127
113
119
132
141
141
127
133
126
113
113
128
127
127
145
142
132
134
128
130
123
112
124
123
130
135
128
145
138
135
141
131
113
114
125
124
119
125
125
122
125
121
118
126
123
126
130
139
126
117
125
126
125
138
122
123
119
119
122
127
132
119
129
150
134
145
122
114
124
125
129
121
125
134
125
129
122
105
129
137
133
128
126
124
120
133
134
139
141
141
139
137
138
114
106
119
136
138
140
134
125
127
136
133
121
120
126
136
131
122
113
120
130
131
132
123
113
115
135
137
124
124
138
135
128
117
125
124
118
133
126
110
108
121
129
120
114
119
123
107
135
114
140
143
123
140
154
118
117
124
99
113
112
133
168
145
145
154
124
119
121
118
118
138
139
131
135
157
124
131
112
132
139
130
133
111
120
137
131
145
146
121
124
114
116
115
121
122
120
122
124
134
131
112
125
115
90
87
116
109
103
135
133
118
127
138
137
117
132
109
131
151
166
138
135
134
135
134
136
115
109
125
135
123
118
125
115
112
145
139
132
132
125
139
158
143
143
146
137
134
148
158
132
113
130
146
156
157
138
124
122
132
131
121
95
112
118
102
122
108
95
114
99
106
130
113
101
108
106
100
118
122
89
110
140
115
127
135
115
141
134
126
113
112
128
137
141
136
147
147
151
144
155
120
108
144
149
148
154
140
114
106
137
142
119
128
108
143
144
119
137
107
121
138
143
159
117
118
132
112
146
112
119
122
135
140
122
118
103
104
128
122
125
119
110
117
115
98
99
80
110
124
135
180
140
140
158
144
141
150
166
128
149
163
120
132
150
147
148
149
152
137
138
153
134
119
125
147
147
113
132
152
125
137
133
117
106
110
128
134
90
121
125
93
88
105
106
108
136
104
104
93
114
124
92
77
113
104
116
139
113
118
118
127
112
133
121
116
136
97
101
134
120
128
134
114
136
132
138
146
135
106
125
150
143
132
170
150
139
147
146
129
146
134
131
136
111
117
136
134
123
139
124
129
121
116
111
130
122
106
107
82
96
98
131
135
107
109
152
141
134
129
139
130
157
158
139
128
140
155
139
144
142
132
142
135
130
106
136
157
123
128
133
137
142
109
145
164
125
134
155
136
113
108
142
129
136
159
141
109
121
136
128
113
136
124
108
139
142
114
130
135
132
109
148
150
111
101
129
123
85
134
138
83
61
125
137
95
110
104
93
133
142
103
139
131
113
136
138
124
126
160
153
139
151
117
121
138
127
118
122
111
97
103
132
115
77
106
134
118
103
127
128
109
122
103
103
128
132
138
104
144
140
138
165
142
119
124
160
172
142
156
147
154
144
159
140
154
146
142
143
136
157
133
126
127
100
131
151
142
119
95
111
143
119
107
105
131
133
124
129
124
114
117
140
130
104
104
106
134
102
98
109
98
104
105
126
114
111
122
116
116
127
103
130
134
135
119
114
148
132
129
141
125
119
129
156
158
123
112
121
124
145
125
143
154
150
140
155
170
173
114
135
152
111
122
150
111
103
100
126
124
128
83
107
147
150
114
102
106
87
114
128
107
112
111
115
134
128
101
133
144
135
136
129
132
141
126
130
172
122
119
159
132
136
150
175
139
138
149
144
129
141
149
135
170
136
137
144
127
124
138
137
151
137
104
121
138
140
134
135
126
106
119
148
114
112
123
124
114
80
95
133
138
108
106
108
115
112
111
111
107
145
125
122
136
124
127
129
135
96
85
129
133
110
108
114
116
119
127
149
150
139
150
136
116
112
133
140
125
105
121
133
139
127
130
135
140
124
129
134
110
118
108
113
137
103
100
108
117
111
133
156
130
114
157
169
140
147
155
158
114
146
147
142
183
138
143
152
150
137
126
144
133
144
150
134
116
124
147
136
96
84
131
118
125
125
98
103
100
121
110
86
124
115
98
103
116
108
116
145
134
115
120
130
128
138
124
140
147
142
135
133
131
136
126
136
143
139
123
122
117
130
129
125
127
120
107
142
111
119
115
151
122
125
142
141
148
121
112
142
111
110
115
124
126
128
117
129
123
141
127
96
102
112
112
121
125
115
93
109
102
107
117
121
148
125
119
149
126
120
167
154
132
135
138
149
131
141
154
151
164
162
156
148
138
147
126
124
163
147
124
98
125
145
127
155
136
105
119
154
135
111
116
133
134
110
142
116
133
154
116
114
121
127
120
135
137
121
138
133
135
126
122
109
95
93
109
120
129
126
104
110
99
90
111
96
109
118
98
104
105
98
117
140
135
131
119
132
154
152
132
128
157
165
160
150
125
155
134
120
141
116
126
107
119
144
134
140
133
127
101
109
128
102
95
109
140
120
110
111
128
133
133
128
115
121
137
142
133
147
118
145
154
162
146
121
143
120
113
155
141
141
139
146
136
112
135
147
114
131
141
124
119
114
140
140
123
127
119
95
124
112
103
134
145
135
129
118
118
125
125
114
114
129
120
93
121
132
106
127
151
119
99
152
149
105
134
124
132
125
126
117
138
145
115
116
118
111
139
161
129
121
160
163
142
163
137
113
112
121
117
122
154
123
108
120
91
93
125
96
92
128
122
107
99
91
94
112
139
111
98
113
119
118
134
102
106
151
143
166
150
138
133
142
135
126
141
152
142
160
160
161
163
165
139
122
143
130
126
146
152
124
132
142
149
124
128
113
110
143
151
134
101
117
123
127
159
132
99
114
123
124
98
124
154
119
119
129
111
100
111
112
107
128
137
119
125
102
117
139
137
115
134
106
96
130
114
107
130
140
105
122
123
114
120
119
114
122
127
126
135
141
123
138
146
134
103
124
144
125
126
147
135
118
152
144
130
144
133
94
99
135
130
142
125
103
113
131
153
132
112
122
119
126
134
123
159
156
134
154
143
118
123
114
134
128
134
132
134
122
112
130
134
142
137
126
140
140
133
124
121
129
129
142
146
131
123
128
122
113
125
115
125
121
127
126
150
148
119
143
106
106
139
123
102
126
122
111
129
169
114
86
107
124
131
143
133
113
99
139
134
152
131
90
120
121
120
113
144
106
161
175
131
125
145
116
99
129
164
110
115
121
95
124
140
120
109
123
112
114
123
112
122
144
123
112
143
133
113
112
106
108
109
138
136
115
129
122
146
151
115
111
142
154
152
146
144
122
129
157
148
142
141
120
130
148
161
167
139
120
138
153
138
148
127
124
135
105
132
112
123
154
127
115
119
115
136
99
91
94
127
134
124
116
77
110
132
134
123
86
108
138
114
98
124
121
138
140
129
128
137
148
118
112
124
156
152
128
94
130
159
159
120
109
124
140
174
142
98
93
149
161
132
111
102
92
144
156
128
110
134
123
121
117
133
139
108
119
117
117
123
140
139
118
135
148
127
127
126
111
113
124
143
144
117
128
130
127
145
146
138
134
113
142
136
141
137
124
117
131
123
130
115
97
93
128
128
111
123
130
112
126
143
136
139
123
120
144
142
144
134
92
117
129
150
145
113
119
133
135
133
144
140
131
134
126
124
146
137
115
136
113
120
139
124
143
125
123
141
136
112
114
108
89
104
153
108
102
121
129
109
119
126
127
119
116
120
124
137
150
125
115
140
143
133
136
113
111
129
122
131
120
127
138
120
147
169
128
121
135
132
130
131
126
106
135
159
130
147
116
109
123
118
144
125
129
135
155
159
156
116
123
110
114
121
129
136
103
111
124
132
117
98
94
97
97
103
127
121
122
141
158
158
155
139
143
141
123
93
133
128
131
179
145
127
163
157
130
105
119
104
119
138
123
129
132
150
154
131
109
114
137
116
114
111
110
109
145
164
119
117
96
121
133
106
118
127
118
125
144
145
117
130
136
113
98
114
117
114
127
152
135
140
158
125
107
100
83
108
124
127
134
136
156
158
141
133
129
117
135
129
129
146
130
149
128
136
142
122
122
107
116
122
136
129
118
135
131
131
150
136
121
123
122
114
86
101
135
122
142
139
125
152
119
100
115
135
137
134
134
136
155
157
159
130
119
133
133
142
137
134
136
151
138
126
154
159
123
101
87
89
93
123
127
145
140
148
142
136
117
113
95
102
98
111
135
132
119
135
135
132
133
115
90
116
115
118
105
111
144
140
121
134
130
114
125
128
119
91
105
133
143
141
129
145
119
105
136
141
114
99
130
153
149
148
164
159
132
144
122
86
115
128
117
138
148
123
143
150
110
98
93
72
94
108
100
108
128
137
130
116
114
102
109
114
109
118
138
124
132
149
154
145
156
158
129
145
144
121
149
159
167
169
157
169
182
157
144
147
156
120
114
149
151
155
144
147
118
110
121
118
104
109
110
120
138
126
138
125
106
103
108
98
119
119
105
133
130
111
119
139
95
95
108
87
87
94
116
119
147
155
114
126
138
119
96
111
109
104
146
140
128
129
141
144
143
137
122
142
112
126
134
149
163
149
152
135
125
142
147
119
108
113
99
111
140
160
115
122
116
103
123
127
90
85
96
121
113
125
128
127
124
149
130
114
138
129
136
166
144
143
161
160
121
129
127
117
131
115
125
150
173
167
141
146
134
124
148
122
118
131
135
134
144
130
127
134
138
123
121
101
88
119
128
134
139
123
127
160
145
133
126
116
123
98
95
114
138
155
119
130
132
101
127
113
84
97
96
118
133
134
138
137
124
105
106
117
111
113
107
146
131
129
147
147
126
106
126
97
84
126
103
125
143
166
154
127
121
114
130
102
112
115
122
133
118
107
105
136
136
112
125
122
85
117
155
150
132
145
171
165
159
157
144
130
122
153
128
129
187
186
156
150
131
156
175
129
120
115
115
147
137
131
131
133
143
128
126
123
109
108
124
143
127
120
133
124
102
96
102
95
91
73
101
92
122
165
139
99
122
111
111
122
100
104
133
135
147
126
122
128
148
140
119
120
107
109
138
159
134
114
139
158
155
143
148
135
129
123
120
120
131
159
159
122
128
146
136
136
124
89
85
114
141
122
122
128
127
109
97
97
105
89
96
120
117
94
130
131
110
102
117
125
92
106
119
113
127
165
170
153
147
145
144
148
148
144
144
155
170
151
131
140
153
155
142
131
143
124
124
168
160
122
126
153
141
149
133
120
120
96
114
121
86
122
149
133
122
110
134
139
130
96
94
125
122
112
110
131
141
112
144
131
99
120
110
131
131
119
129
128
116
119
107
107
103
77
86
113
103
150
148
133
128
131
118
130
123
110
133
147
139
124
129
141
140
145
126
107
111
105
129
148
125
110
118
143
139
126
139
121
115
113
97
113
108
130
162
126
136
141
160
152
141
134
105
126
168
148
146
162
169
148
147
146
128
129
117
142
152
117
140
157
127
135
135
115
96
92
109
111
110
156
128
123
134
118
120
112
107
119
110
136
139
113
117
136
138
131
123
105
116
110
120
160
120
101
139
149
129
138
127
108
110
103
116
106
88
133
145
128
131
130
135
141
131
114
105
139
142
139
126
135
160
130
135
149
126
114
119
120
123
119
129
121
104
100
118
109
90
78
78
91
101
118
143
118
132
143
110
110
133
126
139
155
153
143
139
161
162
157
145
125
130
136
140
155
131
137
140
159
158
147
149
142
141
138
117
106
132
117
133
148
123
147
151
136
121
117
114
98
125
135
113
130
158
148
128
134
109
99
111
127
121
122
120
147
121
112
143
118
96
110
75
83
113
104
137
144
115
143
117
105
124
130
121
105
137
146
123
135
130
126
122
136
114
118
137
145
133
126
106
121
133
118
132
136
132
123
96
109
109
131
158
129
142
160
133
144
136
103
105
123
143
146
116
130
148
159
139
137
122
103
123
139
132
124
124
147
128
109
137
132
109
95
116
125
91
128
153
131
136
137
119
97
124
137
114
148
139
130
140
140
143
125
111
132
136
135
122
132
115
116
140
146
126
120
139
129
141
152
107
101
116
115
121
147
143
138
136
131
130
114
107
120
133
118
117
143
174
150
147
117
88
131
132
115
141
141
127
135
135
130
130
112
97
103
95
101
130
137
133
132
142
140
105
121
139
131
127
112
126
125
148
115
106
137
147
110
122
120
121
132
130
127
123
124
149
141
120
100
109
118
96
121
121
103
133
163
151
121
123
128
142
134
97
102
128
148
145
133
139
129
140
157
127
113
129
158
160
130
146
140
145
148
111
97
105
117
110
105
109
112
150
148
121
133
113
93
139
106
88
128
129
133
120
120
125
111
125
109
106
118
132
139
103
117
131
134
153
150
106
118
167
150
166
254
213
184
149
94
85
96
101
94
76
83
79
90
109
101
78
112
152
125
105
113
116
114
127
107
109
142
164
146
132
86
100
148
146
106
123
123
137
177
177
183
148
170
177
166
143
172
185
186
197
181
163
160
154
145
140
117
141
155
147
161
164
144
136
134
97
79
118
96
88
100
96
83
70
114
115
105
123
91
51
86
92
58
79
78
66
38
39
39
46
53
75
63
68
30
57
92
80
98
101
93
87
104
104
116
121
143
157
153
174
156
154
187
185
187
195
192
193
183
191
183
188
203
191
193
184
179
206
195
207
199
191
197
171
185
193
168
172
183
167
162
194
182
153
178
186
140
153
170
132
130
146
113
104
100
99
100
95
76
94
99
102
114
100
96
80
96
99
96
105
75
102
108
74
78
86
64
66
92
72
43
73
84
54
63
82
62
97
108
90
94
95
96
94
79
56
99
108
72
102
92
84
99
109
83
98
93
114
93
81
102
98
108
74
69
84
100
130
143
124
116
135
170
161
135
147
148
165
167
148
164
161
182
206
169
161
190
202
195
202
219
204
206
194
180
182
185
188
211
182
177
205
202
178
183
187
181
177
196
181
170
212
197
158
168
155
154
172
156
135
141
146
153
151
131
103
114
139
103
92
133
108
91
100
69
85
100
86
90
95
75
94
112
96
81
95
76
53
57
77
71
83
95
85
55
78
102
59
70
107
84
75
96
105
70
74
80
63
79
89
87
92
94
88
105
102
97
78
76
107
104
87
118
124
130
158
134
148
140
143
171
173
175
174
171
149
175
183
158
161
166
146
191
179
169
188
162
160
134
148
156
168
173
162
136
146
162
149
142
122
122
138
158
141
125
103
123
148
131
110
117
127
132
137
132
130
111
113
109
124
127
115
98
96
101
119
109
94
92
89
100
126
115
94
99
129
108
111
144
84
104
122
100
113
121
136
130
143
157
129
114
137
135
118
129
145
118
104
113
112
114
112
136
130
152
159
167
135
149
143
122
99
110
119
124
137
91
119
131
149
137
153
163
139
148
185
172
170
163
158
157
138
147
178
122
124
145
157
138
135
124
126
148
130
112
140
119
161
141
135
128
118
143
138
133
133
112
133
159
129
127
127
119
118
118
112
115
136
140
121
109
91
93
117
126
123
118
122
102
116
118
126
111
95
125
131
130
131
122
101
111
120
120
119
96
110
122
128
144
114
115
121
121
127
131
116
106
84
98
108
112
76
85
89
99
92
112
98
116
126
118
120
114
102
110
108
103
110
111
119
117
131
123
122
133
135
139
131
149
160
144
144
145
127
150
160
169
138
169
166
172
166
166
150
154
149
153
147
142
149
134
141
137
136
134
144
160
125
126
159
146
147
135
120
107
95
134
117
81
85
117
130
122
112
84
82
130
130
85
114
123
122
114
109
120
102
106
148
134
107
136
142
148
138
140
130
125
123
123
133
127
147
161
140
117
108
139
152
152
164
140
144
150
136
118
124
121
124
126
150
128
124
123
122
145
120
120
125
128
118
106
118
128
118
111
114
109
99
108
127
88
99
119
118
133
136
116
108
124
123
114
149
133
120
140
144
126
144
144
136
130
136
137
135
138
136
149
135
128
134
128
124
141
135
117
116
123
123
126
121
121
138
127
145
161
126
118
129
140
142
136
137
126
118
122
115
127
113
99
133
140
118
119
137
138
120
137
132
100
95
123
95
84
83
109
122
119
102
104
106
135
129
116
120
139
138
125
125
124
115
122
118
128
108
122
131
132
148
162
149
121
115
136
123
136
140
118
130
114
96
119
127
120
139
147
142
151
145
131
139
145
161
153
166
157
118
149
165
122
131
144
150
162
132
143
163
148
142
150
110
104
141
139
110
102
109
127
123
121
101
107
94
119
126
111
110
130
126
110
114
121
111
109
128
125
117
122
132
131
112
131
136
115
98
128
134
114
120
131
107
114
131
129
121
102
127
148
143
136
122
130
122
148
175
141
141
150
126
156
157
127
130
141
130
142
132
118
118
132
142
117
133
121
105
119
96
61
82
102
103
106
95
93
90
107
101
76
100
125
122
115
119
137
116
123
139
135
131
141
165
154
150
186
171
134
127
135
153
161
150
138
145
131
137
139
140
123
164
165
158
169
139
140
150
135
147
145
124
136
142
118
131
141
96
101
116
122
132
134
121
131
125
125
138
98
93
134
112
95
93
110
105
110
118
102
114
104
111
119
119
125
109
116
112
108
113
117
128
132
124
132
137
144
137
137
151
139
118
125
145
114
107
127
109
116
120
129
136
106
133
149
148
147
129
128
120
137
152
139
126
118
107
154
143
99
120
141
124
153
152
136
132
162
166
134
139
143
143
130
126
103
94
127
130
132
120
109
128
133
110
104
125
139
116
123
144
109
110
135
104
118
123
120
135
135
142
164
140
115
116
133
141
146
134
125
115
131
118
116
117
130
144
147
161
139
131
151
132
147
138
108
144
141
128
120
110
102
96
90
106
130
119
131
145
128
126
149
137
116
134
136
116
100
112
123
123
119
92
118
112
117
125
117
130
138
146
124
123
116
101
108
115
130
109
117
130
138
117
111
147
135
124
150
138
126
134
139
126
122
135
120
131
143
141
138
168
157
132
152
164
159
153
166
147
160
130
130
162
123
101
123
125
117
123
134
129
126
143
141
128
117
132
117
112
103
98
100
116
129
129
96
101
125
107
80
106
129
121
114
135
133
100
109
127
99
118
120
130
140
129
149
137
122
123
122
125
133
136
130
127
127
130
131
134
141
147
152
144
161
132
133
155
146
134
133
121
153
134
144
146
119
99
104
103
80
116
124
97
122
128
99
117
119
106
119
119
99
109
122
130
158
108
107
141
126
128
114
145
150
159
156
129
137
132
133
147
136
118
145
174
160
130
134
139
140
154
141
115
132
129
118
115
110
116
108
117
120
116
120
141
144
114
132
159
145
144
152
139
127
136
130
125
100
110
106
85
111
130
115
132
141
126
125
132
130
117
109
118
123
98
98
125
127
137
123
127
128
118
124
128
133
136
133
130
140
127
109
103
99
96
114
135
136
137
152
150
125
102
119
101
115
124
98
120
109
101
113
115
115
134
126
141
150
140
172
179
164
141
137
144
150
161
151
138
128
123
130
115
110
144
138
143
144
141
135
144
134
126
125
117
118
130
119
129
155
125
101
130
91
88
114
112
109
135
135
128
129
113
106
117
109
113
122
150
139
118
141
134
111
143
128
99
131
148
99
131
130
99
114
127
116
103
121
122
133
121
116
158
140
140
157
161
157
143
142
146
126
107
116
101
74
117
137
117
134
129
122
148
131
118
137
128
122
112
111
104
118
131
134
109
109
115
107
121
114
123
133
130
142
156
130
137
118
108
123
150
144
158
162
148
167
157
124
138
126
126
144
130
130
115
115
137
118
124
133
136
119
127
134
139
161
162
126
124
124
133
141
145
125
116
112
114
111
85
115
130
119
115
137
136
124
119
115
110
105
122
133
112
130
148
117
141
127
75
106
117
115
124
128
129
131
116
116
126
113
112
143
159
128
137
158
133
131
127
112
117
131
155
119
105
139
104
111
127
134
100
123
118
125
126
90
127
147
115
135
150
135
124
132
137
124
113
122
113
101
106
136
136
129
138
146
153
137
152
151
138
151
138
131
129
137
153
139
133
148
145
125
114
120
132
137
144
127
121
143
150
106
98
126
119
134
141
129
135
148
130
125
127
133
125
120
105
113
94
114
119
109
118
129
127
126
123
125
134
142
138
138
135
127
130
148
125
130
122
100
102
99
82
115
132
129
119
133
144
149
119
126
136
107
95
136
123
121
139
133
125
142
116
112
123
107
107
150
132
110
122
112
127
116
99
108
111
133
135
138
124
129
131
123
138
144
152
143
126
138
127
125
150
143
120
136
155
142
116
134
159
147
144
150
156
128
125
133
144
138
128
128
127
111
102
112
129
113
125
136
148
121
126
133
106
98
120
114
115
135
126
114
154
145
121
116
120
107
115
130
122
126
120
109
128
105
99
107
124
127
135
142
129
126
131
123
133
144
128
116
126
143
132
126
147
127
107
121
128
123
119
144
151
145
141
140
147
133
115
118
116
125
111
101
106
100
106
117
120
128
145
139
131
126
118
117
135
134
112
114
135
147
138
133
128
126
138
143
143
142
142
139
126
117
124
113
115
122
112
104
129
135
128
142
139
132
133
125
126
125
131
130
132
141
139
134
133
115
122
124
128
140
130
115
143
152
146
137
137
128
119
127
126
116
109
116
121
126
121
129
149
139
132
133
119
124
124
115
118
121
125
122
121
116
114
120
122
128
130
128
133
127
112
119
111
93
104
126
107
90
92
106
122
130
142
129
113
128
126
121
122
127
131
137
140
147
139
134
136
137
135
130
134
137
136
148
148
150
144
139
134
127
121
121
122
131
133
138
144
141
135
142
143
139
130
128
133
136
127
128
134
133
126
118
114
119
117
126
135
126
116
121
127
129
124
126
120
108
112
124
112
110
107
112
117
123
119
110
121
125
127
125
122
124
126
130
136
140
132
128
128
123
120
126
131
128
131
133
142
148
139
135
135
136
133
131
131
126
126
129
129
127
131
130
128
125
121
125
133
132
124
121
122
123
121
121
120
121
121
123
122
118
129
135
132
127
126
125
125
122
123
119
118
121
118
117
121
127
133
134
131
134
133
130
132
131
127
132
136
134
136
138
134
136
137
126
130
130
123
123
126
127
131
132
131
133
135
131
133
132
130
131
129
133
132
131
132
132
130
128
125
123
126
122
124
126
123
124
120
120
118
117
120
125
123
118
121
124
121
124
122
113
114
117
111
113
114
112
116
118
121
126
128
128
127
123
123
125
120
124
131
133
135
134
134
132
132
130
132
131
130
129
126
132
134
134
136
138
140
142
144
142
137
136
137
141
142
139
139
138
135
131
132
132
132
131
131
130
130
130
128
127
124
123
124
121
119
120
122
123
121
118
119
115
114
116
119
117
113
117
119
122
121
124
124
123
126
125
125
128
126
125
125
127
124
126
126
125
128
128
128
130
128
125
130
133
133
133
134
137
134
134
138
134
129
128
131
131
131
132
130
128
127
127
129
126
126
127
124
127
125
123
121
125
125
122
122
122
124
121
124
124
121
125
123
119
119
120
122
123
119
123
128
127
127
128
127
128
131
133
133
127
129
131
129
133
134
133
131
135
136
132
137
137
133
135
134
135
134
136
137
135
135
136
136
134
129
129
130
130
131
129
128
128
128
126
124
124
123
121
121
121
121
119
121
121
122
120
118
120
117
120
122
121
123
121
118
120
118
117
122
121
120
120
122
124
123
122
125
130
131
128
129
129
127
129
132
132
131
132
134
133
135
135
133
135
136
135
135
135
134
132
135
135
135
133
132
135
132
129
130
130
131
131
132
130
127
125
127
126
125
125
126
122
121
124
122
121
125
122
120
122
123
121
119
124
124
122
121
123
124
122
122
124
124
121
124
129
128
125
129
131
131
133
134
132
131
131
132
132
129
132
134
131
133
133
131
134
135
132
131
131
131
128
129
130
130
127
128
128
124
124
125
126
126
127
127
125
123
123
124
123
123
121
121
123
125
122
122
124
122
124
121
122
124
125
127
128
126
125
127
129
125
124
124
128
127
125
127
131
130
129
132
133
133
134
133
130
128
131
132
131
130
128
128
131
131
128
129
128
128
130
130
133
132
129
128
126
127
127
129
129
127
126
127
128
126
127
128
124
127
127
125
124
126
126
122
126
125
124
124
123
124
125
126
126
125
125
130
132
129
127
128
128
127
127
127
127
128
131
130
130
129
131
132
132
131
132
129
131
129
130
128
127
128
130
128
126
128
126
126
126
127
126
127
127
125
125
126
125
124
127
128
125
124
123
126
125
127
130
123
126
126
126
126
125
124
125
125
125
129
125
125
124
127
125
126
127
127
127
128
133
127
127
129
129
127
133
127
127
129
130
131
129
130
129
132
132
131
133
127
131
130
126
128
129
127
130
127
125
128
126
126
128
126
123
127
127
126
127
128
124
125
125
126
125
124
122
121
123
126
126
127
126
127
125
128
126
125
127
125
128
128
131
127
130
131
129
131
129
129
130
130
132
134
130
134
130
131
132
130
129
129
129
128
130
129
131
128
130
130
128
127
128
129
126
125
127
124
126
127
125
125
124
126
124
122
124
125
127
127
124
126
125
127
126
124
125
123
125
123
124
128
125
128
127
126
126
124
127
125
126
123
129
126
129
128
128
127
129
130
128
126
130
130
129
131
129
131
132
129
130
128
129
131
129
129
128
130
127
129
129
128
129
129
127
129
128
128
128
128
128
127
125
128
126
126
125
127
126
127
126
126
127
125
123
125
125
124
126
123
124
123
124
125
123
128
126
124
126
126
125
128
125
127
128
124
128
129
127
128
129
128
129
129
130
131
133
129
128
131
129
129
128
128
130
130
129
129
126
128
129
127
126
126
128
127
130
125
128
126
127
127
125
124
126
126
125
129
125
126
126
124
126
124
125
124
126
127
125
130
125
126
125
125
126
127
125
125
126
128
125
126
128
125
126
127
127
125
126
126
127
128
128
128
128
128
130
129
129
128
129
130
128
130
128
129
131
130
127
129
127
128
129
128
129
129
127
129
128
127
127
131
128
127
127
126
126
126
128
128
127
125
126
125
125
125
125
124
126
124
125
129
126
126
122
125
125
124
126
125
127
125
130
127
127
126
126
127
128
126
125
127
127
129
129
129
129
129
127
131
129
127
129
129
129
129
128
129
129
129
127
128
127
126
129
128
126
126
127
126
129
126
126
127
126
126
126
125
128
126
125
126
126
126
125
127
125
124
124
124
125
126
126
127
126
125
127
124
126
126
127
127
126
128
128
129
127
127
126
128
129
127
129
128
128
127
129
130
127
129
128
129
129
128
127
128
130
128
129
128
129
130
128
127
128
126
127
127
128
127
126
129
128
126
127
127
128
128
127
127
127
127
126
127
126
126
125
126
125
125
125
125
126
125
127
128
126
127
125
127
126
128
125
125
128
127
129
127
128
128
127
128
128
127
126
127
129
127
128
128
128
128
127
129
128
127
127
128
128
128
128
127
128
129
125
128
126
127
127
127
127
126
127
126
127
126
125
127
127
127
125
125
127
126
127
126
127
127
127
128
126
125
126
124
128
126
127
127
127
128
127
128
127
126
127
127
127
128
128
128
126
128
127
128
128
127
128
127
126
129
128
129
128
127
129
128
128
127
128
127
128
128
127
128
128
128
129
127
126
127
126
127
127
127
126
126
126
126
127
127
127
127
125
128
127
126
126
126
126
127
127
126
126
127
125
127
126
126
128
127
128
127
128
127
127
127
126
127
128
128
128
127
129
127
129
128
127
127
126
128
127
128
128
128
129
128
128
128
128
127
127
128
126
127
128
127
127
128
127
127
127
127
127
127
127
126
128
127
127
126
126
126
127
128
127
127
126
127
127
127
128
127
128
128
127
126
126
126
126
127
127
127
128
128
127
128
127
127
125
127
127
128
128
127
127
127
127
127
126
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
126
128
127
128
128
128
127
128
127
126
127
128
126
127
128
128
127
127
127
127
127
128
128
128
127
127
127
128
127
128
126
127
127
126
125
127
126
126
127
127
126
127
127
127
127
128
126
128
128
128
128
129
128
128
128
127
128
128
127
127
127
127
129
128
129
128
127
127
127
127
128
128
128
128
128
127
128
128
128
127
128
126
127
128
126
127
128
127
126
127
126
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
126
127
128
127
127
128
126
128
128
127
126
127
128
127
127
127
128
127
128
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
128
126
127
126
127
126
127
127
128
126
127
127
126
127
127
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
128
127
128
127
127
128
127
127
127
127
127
128
128
127
127
128
127
128
128
128
127
127
128
128
128
129
128
127
127
128
127
127
129
127
127
127
128
128
127
127
127
126
126
127
127
127
127
128
126
126
126
127
127
127
128
127
127
127
127
127
128
128
128
127
127
126
127
127
127
126
126
127
128
127
128
127
128
127
127
128
127
127
127
128
127
127
128
128
127
129
127
127
128
127
128
128
127
127
128
128
128
127
127
127
126
127
127
128
127
127
128
127
128
127
127
127
128
127
128
128
128
128
128
128
127
128
128
128
128
127
127
127
128
128
128
128
127
128
128
127
126
127
127
126
127
127
127
127
128
127
127
128
127
126
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
126
127
128
127
127
127
127
126
127
127
127
127
127
127
127
126
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
126
127
126
127
127
127
127
128
128
128
128
127
128
128
126
126
127
127
128
128
127
128
128
127
128
127
126
127
127
126
127
128
127
128
128
127
127
127
128
127
127
127
127
127
128
128
127
127
128
127
127
127
127
128
128
127
128
127
127
128
128
128
128
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
126
127
127
127
128
127
127
127
128
128
127
128
127
127
127
127
127
127
128
127
128
128
127
127
127
127
126
126
127
128
128
127
127
127
127
127
127
127
126
127
127
127
126
126
128
127
127
128
127
127
127
127
126
127
127
128
128
128
127
127
127
127
127
126
126
127
127
128
127
128
128
127
127
127
126
127
128
127
127
128
127
128
128
127
127
127
127
127
126
127
128
128
127
127
127
127
127
127
127
127
128
128
127
128
128
128
128
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
127
126
128
128
127
127
128
127
127
127
127
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
126
126
127
127
126
127
127
127
128
127
127
128
127
127
127
127
126
127
129
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
128
127
127
128
128
127
128
127
127
128
127
127
126
127
127
127
127
127
128
127
127
127
126
127
127
127
128
127
127
128
128
128
127
126
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
126
126
126
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
128
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
126
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
126
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
128
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
128
127
127
128
128
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
126
127
128
127
128
128
127
127
127
126
127
128
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
126
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
128
127
126
127
127
128
128
127
127
128
128
127
127
128
127
128
128
127
127
128
128
127
127
127
127
126
126
127
127
128
128
128
128
129
128
127
127
129
128
126
127
127
127
127
127
126
125
126
127
127
126
127
127
127
127
127
127
127
127
127
127
126
127
128
127
128
128
127
128
128
128
127
127
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
127
126
126
127
126
126
127
127
127
127
128
128
127
128
128
126
127
128
127
128
128
127
126
126
127
127
127
127
127
127
127
128
127
128
128
127
126
126
127
128
127
127
128
127
127
128
127
126
127
128
128
127
128
128
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
126
127
127
126
125
126
127
126
126
126
126
126
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
126
126
127
127
127
127
127
128
127
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
129
127
127
127
128
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
128
128
128
127
126
127
128
127
127
127
127
128
128
128
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
126
127
127
127
127
128
128
127
126
127
127
126
127
127
127
128
128
127
127
126
127
127
127
127
127
126
127
127
126
126
126
127
127
127
126
127
128
128
128
127
126
127
128
128
128
127
127
128
128
127
126
126
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
127
126
128
128
128
128
128
128
128
128
128
126
125
126
128
128
128
129
128
128
127
127
127
127
127
127
127
127
128
127
126
127
128
127
126
127
128
128
129
128
128
128
127
127
127
127
127
127
127
128
128
127
126
126
127
128
127
127
127
127
127
127
127
127
128
127
126
127
128
127
128
127
127
127
128
128
127
126
127
128
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
128
128
127
128
129
127
127
128
128
127
127
127
127
127
128
128
127
127
128
127
126
126
127
127
128
127
127
126
126
126
125
126
128
129
130
129
128
128
128
127
127
127
126
126
129
127
125
127
127
127
129
130
131
131
131
132
130
125
122
122
122
122
124
125
125
126
126
126
126
127
128
129
130
130
130
130
131
130
128
128
128
128
128
128
128
129
129
129
130
129
127
128
128
126
126
127
127
126
127
127
126
127
127
125
126
127
124
123
125
124
122
123
123
124
124
125
126
127
127
129
135
133
125
127
116
105
126
123
137
147
124
122
138
140
124
129
128
110
123
157
146
136
157
129
109
111
105
107
124
132
139
167
151
130
127
115
104
127
118
97
132
147
146
150
163
118
96
131
114
103
129
119
128
146
139
120
118
112
80
110
124
114
131
150
130
140
148
139
102
120
104
102
138
135
125
153
133
135
135
116
109
120
132
135
150
128
128
138
129
138
135
118
133
127
127
136
134
140
118
120
121
120
129
132
133
145
143
121
109
123
132
139
143
137
108
133
143
103
117
130
94
125
117
121
144
130
165
146
106
119
67
69
82
109
132
148
167
187
189
182
158
133
96
68
87
114
89
81
83
99
33
90
114
121
182
132
239
179
194
120
174
99
207
148
165
145
149
166
150
128
151
149
155
144
131
151
132
155
155
108
103
82
98
106
66
55
115
111
77
102
30
63
103
111
91
78
90
67
59
110
101
94
115
129
143
157
173
194
197
178
184
191
163
158
171
215
195
177
188
181
139
144
160
157
165
128
100
124
100
86
107
104
95
90
66
51
60
107
108
123
136
117
78
72
78
89
143
113
122
139
157
179
169
177
157
178
168
148
182
174
157
188
191
174
140
103
85
70
92
87
97
131
115
75
103
117
107
122
105
52
76
98
86
83
56
100
117
89
151
136
98
166
172
161
158
157
157
145
185
183
165
148
157
170
192
163
188
187
155
156
159
143
141
115
146
121
80
109
98
47
63
101
94
64
70
81
92
73
72
95
77
82
110
105
116
132
152
125
110
106
142
93
135
128
131
144
187
191
176
175
156
148
146
108
117
131
119
128
166
134
146
152
153
157
124
117
120
110
102
115
127
111
132
125
66
71
95
111
155
111
149
186
187
190
170
187
140
152
173
144
156
135
143
134
138
162
121
116
130
120
166
131
113
95
112
115
114
115
129
101
141
89
88
99
85
104
92
125
120
132
141
130
148
116
132
116
111
89
116
109
138
142
148
144
167
147
144
160
173
148
184
183
175
168
132
160
145
117
125
100
104
143
127
100
112
102
64
40
59
74
73
54
82
74
69
75
92
76
88
114
112
107
125
143
141
137
151
170
137
171
198
205
172
185
174
179
173
194
181
145
144
161
170
136
145
102
119
169
149
137
135
106
79
93
121
101
113
94
116
106
92
73
83
94
98
117
102
105
112
129
96
89
117
93
118
149
168
144
152
151
143
141
168
171
193
181
187
178
139
154
165
131
134
148
117
125
135
116
125
97
92
112
107
102
90
90
86
81
142
108
98
97
112
103
108
146
133
130
147
128
99
123
125
140
154
128
161
158
176
190
195
166
160
162
156
145
123
114
128
122
123
131
99
102
95
69
84
102
84
129
105
78
86
64
75
84
89
75
104
113
111
117
129
112
156
134
137
149
150
167
146
150
170
164
164
179
159
171
176
178
163
148
161
166
165
176
164
143
145
149
133
134
130
123
102
119
90
73
93
59
59
68
70
81
67
75
100
97
85
110
94
101
144
140
121
138
159
155
145
182
152
164
168
187
181
177
172
159
164
136
168
154
161
141
167
146
117
126
148
108
104
92
97
120
110
118
126
124
116
138
119
131
132
121
103
139
124
96
117
114
102
116
107
108
101
93
129
116
101
137
126
118
143
111
109
117
132
136
112
98
94
127
110
109
111
106
102
133
132
124
133
143
127
123
134
113
137
131
135
145
133
124
139
150
160
168
146
156
150
147
153
150
141
156
126
134
153
136
135
148
135
117
126
141
113
122
122
100
87
92
83
87
109
121
114
131
115
110
113
113
114
116
107
104
118
114
113
122
127
132
149
167
157
174
168
159
164
176
146
170
172
156
117
152
137
132
130
143
125
131
134
125
123
112
118
144
114
115
125
105
125
129
118
138
121
107
126
118
98
117
121
91
84
89
100
102
105
120
108
122
123
134
119
102
124
120
132
123
119
145
141
122
123
130
101
123
151
138
135
153
148
122
124
116
105
120
132
124
124
130
127
130
131
141
135
130
127
132
134
146
151
147
143
142
124
146
132
137
133
143
149
128
149
138
117
123
109
92
103
119
85
108
124
125
128
126
117
96
111
119
132
139
120
137
150
131
124
124
109
119
137
144
137
142
143
149
128
128
137
150
142
139
163
140
145
157
163
162
144
142
148
131
115
149
124
121
158
121
90
142
116
112
128
129
106
124
124
96
101
97
102
84
83
82
86
99
104
95
108
104
103
111
121
122
145
152
130
145
153
137
129
114
126
124
129
173
124
129
145
164
118
119
121
121
134
124
138
126
126
140
151
148
137
127
133
131
128
135
131
146
149
131
120
135
124
124
128
122
112
133
133
119
112
121
111
89
105
107
108
133
131
132
142
113
123
119
120
124
138
141
116
137
144
136
131
120
139
137
139
151
135
150
146
135
135
134
145
140
158
142
156
155
131
148
148
139
131
109
119
106
96
125
153
127
140
136
138
133
133
127
114
119
119
113
132
102
94
97
84
83
87
99
90
118
125
111
137
108
108
119
113
112
114
130
128
120
146
141
129
120
114
127
126
137
146
151
145
141
116
113
116
112
124
129
126
149
144
144
154
156
140
140
134
132
99
112
142
108
132
147
120
128
126
135
131
132
139
129
133
148
112
101
99
102
92
113
103
101
142
129
141
150
124
143
141
141
143
139
152
144
142
152
141
132
111
117
124
128
130
146
152
145
133
137
120
116
116
136
125
119
119
122
119
136
134
120
118
123
106
121
138
132
148
144
136
130
125
122
122
134
120
131
144
143
113
125
123
109
123
134
103
119
121
117
110
118
100
108
114
122
99
114
124
124
119
127
125
108
93
101
103
118
128
131
143
122
124
128
117
120
121
143
136
121
145
154
140
159
153
133
122
133
124
112
121
144
136
130
128
130
126
134
123
127
139
128
144
151
130
124
133
101
118
133
105
119
121
135
127
138
131
143
146
144
145
138
150
147
143
153
146
136
120
115
122
125
131
139
140
128
126
138
132
131
124
123
115
123
141
129
129
127
120
115
112
118
105
85
114
124
122
138
143
136
133
123
116
119
123
131
145
149
131
123
131
106
128
125
112
99
110
125
103
133
127
102
125
120
122
125
113
130
115
129
134
116
120
113
95
108
125
128
137
140
124
118
129
133
126
127
126
128
137
158
162
150
152
135
124
118
124
110
108
136
128
131
132
123
125
126
118
121
123
126
143
142
133
119
120
113
123
106
110
103
108
131
127
134
143
133
141
135
134
133
124
131
140
143
135
138
134
116
125
128
121
133
143
132
130
140
144
138
154
139
144
132
136
138
147
149
132
140
141
135
114
126
114
112
132
134
80
154
145
219
205
165
117
110
82
74
63
59
58
81
81
75
68
58
79
86
89
107
84
105
122
88
117
111
106
129
156
161
164
170
137
119
136
162
148
181
174
164
177
168
169
167
184
165
186
196
163
189
205
214
188
164
173
155
128
124
150
146
135
147
147
134
126
104
104
85
94
60
90
123
103
93
121
92
75
75
94
76
101
67
50
89
93
63
91
82
49
83
72
33
75
97
62
74
85
52
79
97
88
91
111
115
107
102
127
123
107
117
121
126
127
149
158
142
171
179
164
163
164
170
170
181
193
210
211
192
210
191
192
184
204
194
203
232
223
186
215
208
188
181
180
174
189
183
166
154
147
131
121
140
134
122
160
146
113
106
114
93
77
99
92
101
109
119
100
93
99
86
70
73
72
92
118
106
114
111
97
97
96
80
74
65
81
75
72
73
74
70
65
66
64
89
107
93
79
88
103
64
83
101
95
94
86
94
107
83
109
111
109
133
130
160
152
124
138
120
131
142
137
149
155
151
129
119
117
117
120
119
133
125
127
121
136
145
145
155
156
154
167
156
149
146
152
165
171
189
209
208
201
214
186
170
164
155
155
162
170
172
172
175
162
179
159
165
173
176
177
169
156
159
151
152
163
182
177
177
179
157
172
159
141
154
180
169
173
162
147
162
151
130
114
103
116
113
121
104
84
77
103
78
79
80
89
83
86
68
66
52
55
51
37
35
48
49
33
35
47
47
50
68
65
63
85
91
84
73
85
80
59
69
66
81
79
96
106
121
110
122
126
144
123
116
115
144
154
131
129
156
150
142
152
132
120
125
146
127
131
138
159
132
157
136
141
152
178
149
146
159
173
149
140
149
141
162
150
153
171
150
194
187
168
150
157
166
142
149
164
163
166
137
164
181
156
162
169
155
126
127
170
147
160
175
160
153
180
186
173
167
170
154
138
151
133
111
119
111
121
145
109
108
126
115
92
95
90
71
99
113
65
77
98
82
82
100
80
61
106
97
64
90
92
89
99
108
104
100
108
109
133
130
122
134
152
117
118
153
146
117
111
137
138
137
140
140
115
112
111
121
128
114
130
116
95
103
141
142
120
125
132
131
121
129
137
136
124
157
147
143
158
164
175
153
146
163
156
169
169
135
147
155
144
160
161
124
118
154
126
121
140
137
135
143
114
117
106
121
131
128
94
106
113
114
88
101
108
116
99
109
97
100
108
115
91
95
99
121
124
110
112
114
100
113
120
110
128
123
93
105
120
113
119
132
132
110
111
117
113
106
128
135
143
143
148
182
171
183
182
179
180
172
151
162
157
131
131
169
128
125
157
129
111
124
130
105
125
154
111
123
123
113
121
120
128
108
104
96
116
115
97
119
127
115
123
130
133
136
135
141
118
118
147
165
136
139
158
123
114
140
141
126
138
145
136
111
130
137
130
124
118
119
116
117
111
131
120
118
132
131
125
143
135
122
127
134
135
138
119
125
136
109
122
132
114
115
134
105
125
141
126
130
143
127
120
118
112
127
125
116
113
120
99
107
115
115
123
122
103
105
141
137
103
121
111
108
102
118
126
128
125
123
107
103
107
120
139
134
130
121
131
128
122
135
131
109
129
127
131
126
135
134
128
142
142
154
143
139
135
143
160
156
153
162
145
166
158
158
166
180
166
167
178
142
145
153
153
135
142
122
123
143
127
91
115
113
108
90
80
100
122
122
100
103
116
126
115
129
117
82
95
90
105
109
125
127
117
98
112
119
127
134
142
142
133
142
135
126
140
137
118
134
144
140
136
128
121
121
123
133
137
122
126
147
141
136
124
142
151
125
113
136
121
117
143
127
114
127
127
122
143
118
121
132
129
137
118
116
119
133
134
102
111
100
101
119
110
99
97
111
123
136
126
111
126
129
97
93
117
131
132
129
125
105
100
119
121
117
125
121
123
123
117
127
126
119
110
131
140
141
132
126
116
139
132
132
129
126
134
141
142
158
148
147
166
149
109
133
151
128
151
145
112
145
152
140
153
146
144
172
165
146
155
170
159
159
147
144
131
131
130
127
104
117
113
106
99
110
127
131
117
101
103
103
107
121
119
114
113
109
113
96
115
107
103
116
114
111
126
128
110
109
135
138
146
140
136
142
135
132
148
149
147
132
149
151
147
170
149
150
155
128
138
152
141
133
139
118
120
137
115
108
143
131
120
131
121
120
121
145
119
105
129
128
112
105
107
106
103
97
99
102
107
125
140
111
98
107
118
97
110
113
113
120
117
121
102
121
111
104
113
121
123
135
120
109
108
115
129
115
112
123
124
111
118
114
122
130
116
104
136
117
130
165
145
133
139
146
153
150
157
167
144
137
142
139
117
133
134
121
137
148
134
140
154
157
148
152
154
143
157
155
141
133
133
126
142
137
134
137
149
126
136
126
101
116
124
108
109
120
126
120
112
116
109
116
132
129
116
107
111
111
101
101
112
108
112
118
115
122
112
115
120
111
108
129
133
146
160
155
154
154
142
152
161
142
145
168
161
137
149
154
140
125
135
130
133
132
133
136
149
144
123
124
126
127
128
116
112
107
108
109
105
103
99
112
124
114
112
107
93
113
109
99
114
125
132
109
96
104
106
111
117
117
103
105
117
114
103
103
117
123
119
124
128
119
121
106
98
101
118
120
137
131
127
144
147
132
129
136
147
152
155
160
150
151
155
147
128
129
134
134
139
143
144
152
153
147
143
132
147
136
134
133
127
129
134
131
115
118
130
128
138
146
132
132
132
119
124
141
154
133
140
140
123
115
120
118
116
122
126
130
125
115
113
119
125
124
132
115
115
115
107
109
105
103
106
111
123
107
111
116
124
121
129
128
134
154
155
157
156
155
150
149
142
134
143
153
143
150
149
159
158
156
153
142
139
141
135
134
136
127
134
119
108
106
112
107
110
118
107
101
105
102
94
92
110
114
124
114
106
99
106
118
126
120
114
114
119
108
107
115
120
124
121
127
115
110
117
112
119
120
120
129
114
111
101
115
122
120
123
136
138
142
147
150
151
140
137
142
132
140
145
141
138
137
147
144
141
137
121
131
140
141
145
140
138
135
131
120
107
105
117
120
119
122
126
122
121
119
119
116
125
126
137
134
140
140
135
141
147
144
144
141
124
129
146
146
131
133
126
129
129
124
125
128
137
139
125
116
108
125
121
118
118
113
118
138
135
122
123
134
130
123
127
125
121
142
149
152
151
140
140
142
132
128
135
151
147
138
145
141
139
122
121
120
130
128
134
136
133
136
138
117
108
109
110
105
88
94
87
99
109
109
97
115
114
111
114
113
114
121
124
125
129
122
116
123
120
121
123
126
127
123
125
121
111
115
119
110
114
123
124
133
144
140
142
143
130
127
124
131
130
139
140
140
142
136
130
126
128
123
130
134
140
131
126
125
121
117
115
120
125
133
136
136
138
132
129
134
124
115
123
120
115
118
119
112
107
113
112
115
119
124
123
124
137
142
141
138
147
148
144
153
148
140
145
151
147
150
151
148
147
145
146
137
137
134
143
137
140
139
132
133
125
125
125
120
120
127
133
130
119
121
117
111
108
108
109
120
125
123
118
116
119
122
110
119
126
125
122
135
135
134
133
132
133
129
137
131
119
120
133
136
126
113
123
123
121
120
114
111
122
123
122
117
125
123
127
127
124
119
127
129
129
134
134
134
134
137
126
122
124
129
131
129
134
131
125
127
120
116
117
117
123
124
128
129
126
123
119
115
112
104
115
116
114
113
121
125
131
127
122
117
113
115
113
116
117
126
124
130
135
132
130
129
131
132
138
136
130
129
137
131
120
118
121
125
127
126
133
139
137
138
135
134
134
137
138
139
144
144
145
150
154
146
148
147
140
140
145
147
149
146
146
144
139
139
136
131
133
137
137
134
130
125
122
120
114
111
109
111
113
116
114
115
116
114
115
114
116
115
116
118
121
126
123
116
114
117
123
127
124
131
136
138
134
135
136
133
132
130
131
132
132
135
137
131
135
134
137
131
126
128
126
119
113
124
128
120
120
127
130
129
125
124
126
127
134
135
131
132
127
124
118
117
125
123
130
133
128
127
124
119
107
109
112
114
121
125
120
120
120
116
112
113
119
125
126
122
119
121
122
116
117
116
120
124
123
119
125
125
127
125
132
132
130
130
129
125
125
128
127
124
127
131
131
129
128
129
135
130
126
132
132
129
132
134
134
138
137
136
139
140
140
141
141
139
138
136
135
135
137
136
138
138
134
134
137
140
140
140
141
135
134
133
127
125
126
126
126
127
128
128
133
127
125
124
125
121
123
125
122
124
125
126
127
129
128
129
123
126
126
125
126
125
127
124
122
121
125
124
127
125
125
126
124
125
127
128
130
127
129
125
123
125
125
125
126
129
128
129
126
124
118
120
120
119
123
121
125
124
122
123
124
125
123
126
125
126
128
128
127
126
122
121
121
118
119
121
123
121
126
126
126
126
129
126
124
124
127
127
130
131
129
130
129
128
128
129
127
129
126
127
127
128
125
125
125
124
123
125
126
122
124
126
124
120
126
125
122
124
129
124
127
129
131
130
136
133
132
130
132
132
132
133
131
133
133
133
134
134
130
134
131
129
133
134
134
135
132
130
131
131
127
126
132
130
127
129
132
127
128
127
126
126
128
129
128
130
130
129
130
128
125
124
127
129
126
126
131
132
133
130
129
128
129
127
129
129
128
131
130
126
128
126
126
126
128
126
127
130
130
130
127
127
130
127
127
127
127
126
126
131
128
127
128
127
123
123
123
120
124
125
122
123
126
124
123
123
124
123
126
124
125
127
127
125
123
121
120
118
122
118
119
120
124
126
124
124
124
123
122
123
125
125
129
129
128
127
128
127
127
127
129
128
128
129
127
127
129
123
126
124
125
125
125
127
126
128
129
129
128
128
125
126
124
126
128
129
127
129
128
127
130
128
124
127
130
128
127
126
124
124
129
128
127
127
129
131
134
130
125
124
126
124
126
126
121
128
131
131
126
124
121
123
126
128
127
127
130
135
136
133
127
125
128
133
131
129
131
134
137
138
137
133
129
129
129
126
128
124
127
131
129
126
135
137
129
127
127
123
125
129
130
130
134
136
136
125
120
127
127
128
126
121
127
132
129
123
120
126
130
132
128
125
129
133
129
124
126
128
129
128
123
120
126
130
127
122
125
128
130
127
126
126
128
129
125
120
120
127
129
127
122
122
126
130
128
127
129
129
126
127
125
124
127
125
129
131
129
129
130
126
125
123
121
119
120
123
123
120
118
118
120
122
124
125
124
127
127
125
123
121
122
126
127
128
127
132
134
131
129
126
123
120
119
121
129
130
131
128
128
131
132
127
126
127
124
132
134
130
127
124
122
129
133
131
131
126
129
130
120
122
131
123
125
129
130
127
127
121
114
107
115
126
133
138
143
135
126
123
120
126
124
125
130
136
140
142
144
133
117
122
119
111
114
122
111
115
137
132
122
125
133
122
125
134
126
130
139
135
134
145
139
138
143
132
112
119
128
120
118
131
141
140
144
149
129
123
128
124
111
117
127
128
126
129
70
111
158
118
135
126
172
176
208
116
207
129
122
111
94
68
86
112
68
19
91
96
92
102
142
116
143
217
159
151
141
124
101
237
119
119
115
140
195
165
102
127
121
138
132
176
177
168
173
158
96
98
96
91
97
66
72
87
83
123
142
105
122
111
97
105
126
129
65
94
80
65
88
96
127
140
146
153
153
178
176
163
162
163
162
174
185
152
146
177
157
154
124
112
133
151
169
123
121
132
86
85
98
76
92
75
60
105
155
116
110
124
99
74
109
93
80
96
103
127
162
179
184
178
152
119
139
144
133
148
166
152
152
192
184
143
138
124
110
131
123
121
125
130
135
116
96
80
92
82
63
76
72
88
85
105
109
100
98
90
108
141
132
119
124
135
126
151
160
163
196
172
143
151
124
114
153
189
168
188
175
163
148
166
135
161
128
121
113
151
155
135
135
128
112
88
98
78
92
110
98
109
114
125
143
154
112
126
134
135
117
130
113
94
121
129
116
139
149
151
155
146
127
135
149
129
109
143
132
96
116
94
80
143
147
104
105
142
79
83
138
91
110
118
121
106
98
119
119
119
114
100
114
146
155
153
169
136
106
117
118
139
129
137
160
149
149
166
170
142
137
159
151
135
144
161
155
163
143
134
125
131
124
106
115
87
73
117
102
95
117
126
101
118
117
71
85
100
119
99
91
122
90
79
129
118
102
163
171
171
174
183
171
172
159
148
156
146
135
156
158
129
119
119
125
104
135
145
122
130
128
117
122
136
102
104
106
82
114
128
95
91
119
100
95
125
132
133
155
149
119
125
135
116
117
137
141
134
110
123
142
125
156
154
124
141
123
128
113
113
123
111
116
108
134
135
111
129
102
104
108
108
113
109
125
122
127
109
96
117
115
104
109
117
133
155
164
153
152
172
143
161
189
158
176
184
171
158
146
147
160
140
134
150
99
111
104
109
102
116
97
87
90
117
87
91
139
88
76
122
91
75
89
115
123
96
126
142
165
161
162
181
148
153
159
163
157
153
184
181
154
159
146
140
167
156
128
140
159
142
135
149
116
104
122
119
104
110
114
111
107
95
86
112
113
88
110
116
82
85
92
73
89
121
116
103
120
111
115
125
149
137
121
159
149
115
138
128
136
137
136
143
144
163
159
177
137
128
147
138
134
143
132
130
133
113
88
120
91
72
97
115
103
113
122
111
102
90
107
117
100
118
133
138
116
135
138
132
137
142
136
149
140
142
123
121
135
133
122
141
143
116
135
151
130
150
132
123
147
113
121
124
102
105
113
120
118
144
157
140
150
152
142
153
145
134
141
165
144
129
121
148
120
122
147
148
117
134
161
143
142
140
134
123
125
125
128
122
114
128
118
108
127
130
110
135
126
92
96
116
107
94
119
128
100
99
139
109
113
150
124
127
131
122
131
118
111
114
108
116
127
149
134
141
127
137
140
121
123
139
149
140
140
137
137
117
121
151
120
103
121
142
125
127
146
119
117
126
118
125
128
124
129
142
118
108
119
112
98
132
127
103
113
122
120
126
128
145
129
110
123
136
114
127
141
111
129
128
118
117
130
113
121
131
151
165
143
157
152
144
130
139
146
147
146
147
151
131
124
134
135
139
125
124
139
153
129
147
136
113
118
132
118
113
115
115
130
123
119
126
132
139
139
141
141
125
108
103
118
120
105
123
115
88
112
123
111
120
130
108
127
137
119
119
111
83
89
98
108
120
135
136
155
133
126
141
136
135
140
155
150
135
135
138
133
132
121
128
136
141
142
147
145
136
129
137
141
124
119
136
141
134
147
135
115
127
142
124
123
129
109
103
100
105
104
108
125
103
82
125
120
113
120
121
121
128
125
129
130
111
100
116
133
122
142
164
169
134
144
151
144
152
153
150
157
154
155
158
147
147
137
122
120
127
120
122
131
129
103
140
130
112
114
138
131
116
135
137
123
128
128
138
128
126
111
119
114
84
127
108
116
130
101
75
131
124
114
110
115
120
128
131
106
88
98
108
91
117
134
140
135
132
148
153
122
143
144
133
133
137
135
137
131
129
121
125
127
119
142
149
139
130
141
150
115
114
123
120
131
124
133
122
119
134
142
147
132
137
134
115
103
103
132
108
111
115
92
106
132
121
120
120
128
123
115
151
144
110
102
110
96
112
149
143
145
159
167
161
160
158
164
156
158
144
151
158
161
144
136
115
105
140
142
112
134
152
147
133
145
131
121
134
132
111
114
118
122
129
127
135
130
125
128
127
113
130
128
111
115
112
98
108
105
99
121
101
115
127
130
134
117
112
97
91
102
123
112
117
138
127
127
135
125
123
137
131
109
137
154
137
127
143
125
99
116
136
118
111
142
137
133
150
147
128
113
135
134
116
124
135
124
130
141
147
144
129
130
139
125
123
132
116
117
107
104
103
104
111
107
90
117
126
122
127
113
102
100
105
120
116
128
144
158
141
135
143
147
134
148
139
143
155
152
165
168
144
152
147
138
143
143
135
145
152
146
140
128
121
116
115
115
112
109
124
115
125
127
131
129
115
123
125
136
116
103
126
121
95
96
114
104
111
129
111
112
149
145
133
123
115
105
112
112
111
111
133
132
118
117
118
132
135
129
130
136
134
135
149
150
130
128
129
120
122
125
130
127
131
132
145
147
133
120
118
125
131
128
140
144
144
140
129
133
135
132
141
132
113
120
128
118
103
106
129
124
128
130
121
111
122
113
117
120
116
130
131
135
133
130
146
143
127
131
130
133
131
130
136
136
133
147
146
133
135
132
139
129
120
130
121
130
139
137
142
142
125
125
114
113
114
107
122
145
127
116
129
133
125
122
117
121
141
126
106
110
111
95
114
124
120
128
111
120
122
112
114
108
109
130
120
124
138
127
119
130
126
118
121
112
125
137
127
126
135
135
127
142
136
124
133
125
132
131
129
136
148
129
121
127
130
117
118
131
131
144
141
135
137
130
117
109
116
114
112
122
135
134
129
129
131
122
115
113
113
111
123
133
140
142
131
120
140
129
120
127
147
146
148
142
124
129
131
130
125
106
134
162
148
117
122
118
119
134
135
130
143
159
144
141
139
126
115
113
104
116
130
136
138
151
141
130
127
117
96
120
141
124
124
143
137
109
120
125
118
127
146
147
129
132
132
123
118
107
112
118
137
128
126
123
110
117
119
131
126
139
129
118
137
116
113
135
137
124
107
162
161
197
222
185
155
102
55
43
53
65
78
94
92
84
101
95
86
83
77
86
88
98
122
123
120
125
118
120
125
150
123
113
116
123
109
172
182
166
124
158
180
156
182
174
175
160
167
186
207
182
185
209
208
175
152
163
163
156
162
158
155
159
157
152
141
126
119
115
116
91
95
101
111
103
90
98
89
84
75
75
88
61
33
74
72
60
48
92
93
23
39
66
54
43
78
66
69
82
83
68
87
108
99
108
132
142
115
150
135
140
156
173
158
143
163
155
165
188
162
184
174
173
175
168
183
188
180
187
196
198
175
184
183
166
203
167
169
178
157
144
150
172
148
171
185
151
186
169
147
139
146
134
138
158
145
107
127
136
110
93
109
126
106
103
120
132
108
98
106
96
91
94
90
75
85
96
85
98
131
104
117
136
126
101
101
88
109
113
101
93
99
103
91
78
86
76
79
100
89
102
96
77
74
84
77
57
91
99
76
91
63
81
110
113
126
131
126
114
130
77
55
94
102
103
109
151
146
118
134
129
114
114
126
137
137
150
165
161
154
150
154
151
156
171
173
179
187
184
186
188
193
196
185
190
197
182
195
188
179
182
182
206
173
166
172
181
161
183
199
176
169
201
204
181
185
192
173
176
142
144
154
131
158
183
165
132
151
140
119
108
101
86
71
80
73
67
114
89
75
90
88
52
22
48
71
43
56
69
94
87
79
92
76
44
52
56
68
67
69
80
107
115
105
108
100
118
115
99
102
112
102
101
134
118
95
109
120
126
132
120
127
137
133
127
122
128
131
128
129
143
113
109
135
102
94
121
119
151
160
116
146
163
125
95
129
151
123
148
171
174
187
174
173
157
145
142
156
152
158
159
161
167
160
167
126
140
160
134
121
111
143
150
151
152
151
149
164
136
134
124
139
154
133
135
128
133
122
109
94
96
118
137
133
125
109
130
125
94
97
119
129
107
136
124
106
125
142
108
103
135
117
111
127
94
79
79
88
84
86
119
113
134
142
117
127
113
92
123
122
107
133
172
157
131
134
136
119
116
135
137
142
136
161
166
165
178
193
187
180
171
175
161
165
155
148
172
152
152
158
141
131
140
126
113
139
136
120
125
128
128
138
140
119
105
108
87
91
105
87
100
142
113
92
125
114
84
80
78
68
91
102
101
129
134
122
135
113
81
91
110
99
117
120
145
151
125
131
111
90
102
113
107
102
100
108
116
129
123
130
141
144
138
132
121
111
123
124
94
110
119
115
119
131
121
103
132
128
109
113
127
128
139
158
141
136
157
144
105
131
133
134
140
155
155
137
148
126
112
100
79
93
121
113
107
146
163
146
152
148
129
108
134
132
125
152
159
177
177
156
136
128
127
116
125
127
127
156
163
146
168
172
159
164
153
142
150
169
159
142
140
138
128
146
131
102
125
138
131
113
116
92
111
115
107
131
124
121
123
97
66
89
99
83
102
118
119
136
125
118
103
97
91
85
91
98
114
137
136
127
132
137
102
120
116
105
130
149
161
145
155
142
127
120
111
95
103
101
123
123
137
155
168
149
143
136
148
139
139
146
148
123
131
141
119
100
110
140
126
102
127
121
105
116
120
115
131
139
133
149
141
123
123
135
130
117
138
149
146
138
134
130
121
103
94
96
109
109
121
150
133
116
143
148
121
123
135
138
145
142
156
152
152
161
134
122
138
128
112
120
110
135
151
163
150
154
171
162
145
139
152
147
154
139
130
140
143
127
124
112
111
121
117
102
108
117
123
143
128
104
119
127
100
74
80
98
82
105
113
104
115
130
122
111
88
79
77
107
103
103
121
130
125
133
123
114
106
128
129
117
133
151
159
149
132
128
134
123
102
99
93
101
129
140
134
131
158
162
156
150
151
150
152
145
133
121
136
132
133
118
121
122
117
112
98
97
126
131
140
140
147
142
147
118
109
114
124
122
138
148
150
144
167
144
124
117
103
97
92
100
106
122
148
130
108
127
131
102
118
121
109
139
148
156
137
156
161
142
128
125
113
107
118
122
127
159
166
149
157
155
153
174
166
160
166
155
145
148
144
125
134
142
134
120
122
117
113
115
125
119
143
145
142
139
129
118
95
93
87
95
106
103
125
120
130
131
100
104
94
81
68
95
113
103
113
118
115
120
112
93
95
119
118
121
132
127
147
161
147
138
119
126
111
100
90
96
120
127
141
143
136
140
144
155
151
141
162
147
135
142
138
129
131
140
120
110
120
108
107
109
117
120
142
155
144
144
152
135
123
123
102
104
132
134
138
149
148
157
138
122
118
102
93
106
106
101
137
136
105
125
126
102
108
134
120
121
135
151
143
159
158
136
136
125
121
116
108
127
129
138
148
164
154
148
170
158
161
177
151
146
143
165
151
143
148
138
129
123
116
110
110
111
126
146
145
142
145
145
123
109
109
95
85
106
103
108
121
124
124
128
104
103
101
74
87
97
107
122
116
106
114
117
98
85
106
106
119
127
127
135
144
154
145
124
126
121
112
106
107
93
99
124
128
117
128
141
154
146
159
149
133
134
138
133
136
143
139
117
119
100
95
89
94
114
124
152
148
155
160
141
134
127
124
107
106
138
139
148
154
148
162
145
133
129
108
107
120
119
127
127
132
128
126
125
105
104
114
122
122
131
144
147
155
164
135
142
133
119
122
124
111
112
130
125
128
146
158
157
158
158
156
153
156
155
161
155
162
159
160
136
126
110
102
99
107
108
137
141
146
150
156
138
126
108
107
102
91
95
108
121
118
123
133
113
101
102
81
93
98
103
113
131
110
116
120
110
99
98
95
98
117
124
130
133
148
151
131
133
119
110
114
111
100
91
102
111
113
124
127
133
139
140
140
140
141
143
144
153
154
145
140
121
111
102
106
93
101
108
120
126
147
148
150
145
135
129
141
131
117
125
144
142
149
159
150
140
148
135
121
124
125
129
134
137
128
134
131
126
103
97
109
123
129
141
146
148
160
148
143
138
123
127
124
118
115
123
123
118
127
129
133
143
142
146
155
158
164
160
153
151
147
144
146
131
130
126
128
123
120
120
117
122
115
126
139
136
129
131
129
109
109
116
112
110
122
120
106
116
119
107
101
109
105
107
113
116
114
106
109
107
99
104
104
109
119
127
134
132
136
133
126
124
123
114
111
108
114
114
111
110
118
117
116
125
134
136
137
142
140
142
142
135
125
126
131
130
137
131
130
125
122
118
108
103
109
118
120
127
127
132
144
140
137
143
137
141
141
146
135
143
147
148
146
143
140
137
135
135
128
123
128
129
129
126
129
133
132
140
137
139
134
130
129
128
127
127
124
125
122
117
122
123
124
129
134
134
142
141
141
142
140
138
140
138
140
137
141
139
141
142
141
138
135
133
125
120
119
120
114
117
120
122
129
128
128
123
117
119
122
115
108
117
129
127
122
126
122
117
113
108
102
105
116
114
114
118
123
125
126
126
123
124
128
125
120
121
124
118
117
111
109
110
112
115
119
122
120
125
129
127
121
124
124
124
118
123
123
124
128
127
129
126
130
125
120
120
120
125
122
121
120
121
126
124
130
132
134
135
138
138
140
145
145
142
146
144
140
145
148
142
132
137
144
138
132
124
133
142
134
128
131
137
140
140
142
132
136
144
138
129
117
120
125
127
127
127
128
132
132
133
126
128
129
130
129
126
132
138
140
135
133
134
139
129
127
127
131
135
132
133
131
132
132
127
124
123
121
118
117
117
118
120
125
124
115
121
119
120
117
112
117
125
126
121
127
125
122
118
117
113
113
118
119
117
117
123
127
125
122
126
121
120
121
116
113
117
116
120
118
118
119
120
120
112
117
120
118
116
125
126
126
127
124
124
124
122
124
122
124
123
123
127
127
130
125
125
129
126
123
131
130
133
137
140
140
140
142
140
135
135
137
141
139
132
137
140
137
141
139
144
142
142
139
135
139
133
129
136
134
131
128
137
132
126
125
130
127
125
130
129
130
130
132
132
131
130
134
133
129
128
131
129
132
130
125
131
133
132
132
132
134
134
135
133
132
134
131
131
131
129
124
126
129
126
123
126
125
125
124
124
122
118
122
122
120
114
115
116
114
118
119
116
116
119
118
118
118
116
118
120
123
120
118
124
126
121
118
121
120
117
118
119
114
121
119
119
122
120
124
124
124
124
125
123
126
124
123
121
123
124
123
124
130
127
124
124
126
129
129
128
128
127
130
132
127
126
132
130
132
135
136
135
135
137
137
135
134
140
138
132
134
136
134
134
136
132
132
135
136
133
133
139
136
135
137
140
139
132
131
134
132
128
135
132
133
132
133
134
133
131
131
134
129
126
132
132
133
134
134
129
130
131
128
124
127
124
122
124
121
123
120
122
120
120
121
126
124
123
122
125
124
125
125
124
125
125
127
125
124
122
124
122
122
119
120
124
122
123
120
126
125
123
127
127
127
127
129
127
125
127
128
127
124
122
125
124
124
122
122
120
120
125
120
120
122
119
123
120
119
118
121
119
119
119
121
121
124
124
124
124
125
126
124
127
127
127
126
126
127
124
128
127
125
129
127
132
129
130
132
135
134
132
132
128
131
130
130
133
133
134
133
136
134
133
135
134
133
130
134
137
136
136
137
137
137
137
135
134
135
133
133
135
134
133
134
133
133
135
133
133
132
130
128
132
129
130
131
131
129
130
131
130
128
128
128
127
126
125
127
125
124
126
124
125
126
125
124
123
124
125
121
120
125
121
123
121
122
122
121
120
124
122
119
121
122
120
118
120
119
121
123
123
124
125
124
126
127
125
124
127
125
122
122
121
121
123
127
125
125
125
127
124
128
125
126
129
128
127
128
126
126
126
126
125
125
124
123
125
124
124
123
126
126
125
128
128
125
128
128
128
130
131
129
129
130
131
127
126
128
128
129
128
129
129
127
130
129
129
129
130
131
129
127
128
128
130
133
132
133
132
132
129
131
130
129
128
130
128
128
131
131
132
130
128
126
128
128
128
130
132
129
131
130
128
128
126
126
127
126
126
128
127
127
125
124
125
125
123
124
124
125
126
128
127
125
127
126
126
127
126
128
128
128
125
127
127
127
128
131
130
130
130
127
126
124
124
124
126
129
130
131
130
130
129
129
131
130
129
131
131
129
131
129
130
128
127
135
133
131
127
128
126
127
126
124
124
126
127
126
127
128
127
126
123
120
116
116
114
116
117
120
124
122
119
120
124
123
126
130
131
130
134
132
127
124
124
121
115
115
116
116
119
124
123
128
137
132
125
128
120
120
133
137
138
142
136
130
129
129
124
130
130
127
129
135
123
115
125
127
120
125
133
122
122
130
124
124
131
135
136
138
137
137
138
133
129
135
126
116
123
123
112
110
114
111
107
120
119
111
123
131
126
125
128
134
137
146
137
136
139
129
120
130
119
119
137
140
134
142
155
142
135
133
109
104
128
130
116
120
120
106
106
115
95
96
116
132
140
143
147
141
132
143
139
128
148
158
158
151
144
140
143
129
117
136
137
137
158
152
128
136
133
108
102
114
118
119
129
124
123
128
120
107
104
105
108
124
127
117
122
131
113
107
116
113
116
128
124
122
125
136
136
120
125
130
128
118
112
115
109
121
130
128
123
122
131
125
120
127
127
133
126
133
135
131
140
151
136
135
141
134
113
146
133
105
122
119
111
112
134
134
139
140
131
154
121
113
133
136
153
145
147
148
130
136
130
111
107
112
121
116
118
129
115
117
115
111
101
94
109
105
114
127
121
117
118
124
128
117
121
142
159
140
135
176
147
133
153
169
135
148
149
156
141
129
138
127
76
135
163
145
152
207
163
210
172
169
134
115
77
79
88
77
59
64
10
44
78
54
113
127
166
131
213
134
190
96
134
77
198
86
90
138
109
130
135
123
98
138
179
137
134
184
177
156
117
109
101
124
122
56
128
125
121
91
117
89
57
98
126
102
99
115
124
114
78
58
105
116
109
135
157
136
158
204
173
172
189
213
196
225
205
207
160
169
155
155
137
158
157
146
134
115
89
106
118
65
59
92
77
46
65
84
40
107
99
109
133
94
34
95
114
114
141
129
174
167
175
177
145
165
178
142
151
195
210
195
222
211
162
165
146
128
117
93
131
120
140
122
91
84
83
97
104
74
61
85
76
70
77
61
70
92
49
82
116
83
90
153
140
110
149
153
107
139
167
176
156
137
163
150
152
172
193
147
176
179
156
139
161
135
133
121
75
89
95
81
76
111
118
97
111
132
86
73
109
111
118
121
129
126
127
113
137
107
110
128
152
132
159
147
147
173
158
198
175
164
157
149
136
129
107
94
97
112
85
128
143
158
135
111
122
118
60
119
140
99
100
112
109
84
110
102
80
99
124
119
130
163
166
180
167
180
159
163
169
168
155
149
168
190
175
189
177
161
134
133
122
125
111
121
116
106
101
102
105
83
92
95
93
41
116
83
92
138
97
77
107
75
40
128
91
71
126
108
119
116
104
126
142
107
162
177
156
161
185
184
177
181
147
135
175
144
157
124
156
135
138
149
146
103
109
135
121
107
100
114
96
68
68
49
64
19
54
117
69
83
119
108
105
123
135
113
136
155
145
155
151
139
146
163
127
149
175
161
156
180
190
165
145
149
174
148
153
148
154
155
148
138
125
125
136
130
132
120
117
123
119
95
114
102
115
122
119
91
93
114
116
112
120
115
122
125
110
121
74
114
134
161
135
155
167
183
191
174
161
127
164
180
141
120
128
156
142
117
102
139
103
98
107
111
111
97
83
122
82
59
106
104
64
112
107
76
131
143
111
134
114
101
76
94
141
119
129
143
161
153
147
150
150
133
138
164
149
150
154
166
147
138
122
128
140
140
130
172
141
127
166
140
93
96
119
118
102
86
92
132
94
84
104
115
86
109
152
123
121
134
130
147
126
120
130
111
157
144
137
168
177
153
161
173
136
110
142
149
130
113
157
139
122
121
137
117
88
138
141
127
122
119
157
124
110
120
124
92
81
155
133
100
132
153
132
123
140
144
133
133
114
123
131
126
139
116
114
106
127
130
124
111
136
121
107
131
113
101
105
105
93
109
100
121
127
128
133
130
117
99
93
111
97
124
128
126
107
132
133
108
97
132
149
132
155
164
165
141
143
118
106
133
161
130
135
166
173
156
150
157
159
121
143
143
122
98
136
137
84
82
100
88
105
108
91
117
123
101
120
124
98
99
133
103
116
132
137
151
185
180
159
158
170
131
117
134
155
152
157
168
169
153
152
149
149
131
133
153
146
125
146
143
130
106
90
102
104
89
103
137
103
80
115
121
107
107
135
139
110
127
164
162
122
124
135
127
113
153
133
142
141
129
152
117
107
121
114
118
126
117
132
143
157
129
128
127
107
84
69
108
92
92
123
116
103
102
123
122
88
96
122
132
119
129
154
115
106
118
123
110
99
128
162
147
130
176
191
163
162
195
179
150
166
173
140
155
142
122
117
110
96
114
103
93
110
100
107
109
90
73
93
94
86
99
119
112
126
146
144
139
125
143
124
107
133
146
152
143
159
153
153
160
147
141
166
149
136
172
165
153
143
145
132
107
109
133
130
106
116
152
134
116
145
141
109
115
115
123
124
130
123
86
111
100
95
105
112
106
126
133
129
131
107
120
127
107
98
128
121
126
139
135
143
136
135
141
120
87
94
143
137
113
136
156
120
122
147
120
101
112
128
130
115
122
117
114
124
103
120
146
131
131
166
175
165
154
166
162
160
167
147
121
130
140
130
96
107
109
128
125
128
80
122
153
125
100
116
114
93
96
107
92
76
133
134
153
154
136
160
159
114
100
125
147
124
164
170
140
141
162
143
103
112
131
141
151
147
148
154
152
126
120
120
117
120
135
136
123
135
130
136
123
114
110
98
103
120
112
113
113
111
86
102
108
104
104
120
135
117
130
141
134
116
109
104
114
105
105
146
136
131
153
151
144
118
105
127
138
160
139
129
130
125
125
121
110
94
106
120
124
129
152
148
151
144
112
112
127
131
127
135
133
122
134
130
132
125
122
135
152
141
131
159
151
104
133
142
84
104
135
117
101
145
140
128
145
120
121
130
115
123
123
140
133
139
164
144
131
155
125
101
130
150
110
112
135
135
126
136
125
121
121
121
147
145
137
162
167
143
133
131
125
133
134
131
132
129
145
144
144
126
114
126
113
126
133
121
111
122
135
131
106
96
124
109
85
121
142
103
105
136
102
100
132
131
100
123
135
137
133
159
158
130
121
127
117
105
120
114
104
117
125
139
122
107
133
131
119
133
149
140
139
138
138
105
95
112
115
104
114
118
128
143
130
122
131
128
116
118
112
109
105
121
133
108
109
131
131
131
140
148
140
165
152
143
135
141
149
138
134
150
141
152
141
121
107
114
126
105
120
134
135
119
116
117
133
119
126
127
148
128
129
136
135
114
124
140
136
134
144
133
132
136
132
119
133
134
123
124
148
145
139
130
132
119
119
111
123
121
122
121
132
125
115
123
123
126
112
117
141
118
111
126
120
91
102
121
128
124
122
138
140
142
139
130
97
92
110
112
119
127
134
135
138
131
128
107
111
132
139
126
138
151
144
133
130
125
134
141
139
146
151
128
135
142
123
118
132
126
109
116
137
120
116
123
123
113
118
130
127
118
136
148
124
117
140
136
125
144
153
127
137
144
135
126
118
124
119
112
131
127
133
138
137
148
146
153
141
142
137
124
124
128
135
135
141
130
130
126
118
107
111
103
107
109
104
104
113
107
98
102
115
126
132
138
136
144
140
126
125
130
124
122
133
130
114
116
112
123
117
99
124
139
125
122
120
118
124
122
132
137
114
120
128
117
107
111
118
127
143
130
128
129
123
130
129
132
131
118
128
137
130
123
131
133
130
133
146
141
128
138
143
126
113
119
132
131
130
146
151
149
143
129
133
136
145
112
122
132
128
128
108
105
117
105
99
118
109
113
131
153
111
121
142
113
108
128
124
115
142
152
121
133
132
131
157
157
148
169
178
168
162
162
144
149
145
137
133
133
127
124
131
122
105
107
116
106
105
100
105
108
106
100
94
101
105
104
100
93
111
119
109
97
114
127
112
113
99
104
118
99
124
135
146
148
140
157
141
127
134
136
118
121
135
135
142
148
122
132
134
143
131
133
127
139
127
111
124
121
124
145
144
139
122
134
145
128
124
158
163
117
151
161
124
99
110
145
148
82
164
192
241
197
170
113
91
73
63
53
88
66
80
67
87
82
74
75
83
82
87
89
97
96
105
109
106
126
126
147
133
119
118
137
132
144
159
178
179
162
193
206
192
183
182
184
207
207
221
236
220
213
225
206
179
178
156
145
151
145
125
121
119
106
103
95
90
92
101
99
92
89
82
74
69
74
71
66
57
63
70
60
36
29
50
53
58
76
70
47
58
35
47
66
84
78
87
79
80
86
79
79
88
86
98
111
102
135
137
136
125
136
148
148
148
167
177
186
185
180
201
198
175
178
185
179
167
177
164
192
188
169
194
206
195
225
221
223
217
183
173
186
166
180
175
167
165
171
163
157
140
117
127
142
133
124
143
121
112
142
133
118
122
133
125
114
116
84
100
112
90
96
126
118
112
115
122
115
116
121
97
114
119
115
110
110
112
106
100
95
92
89
86
79
84
95
82
71
84
71
62
72
62
56
75
77
58
85
96
78
93
82
75
86
84
77
87
88
80
89
94
101
90
93
110
112
118
121
124
139
126
119
135
131
136
142
152
160
161
169
164
163
172
179
191
199
192
191
199
203
177
180
194
217
192
198
207
180
168
184
175
170
172
193
190
185
193
162
166
183
187
195
196
187
168
169
146
120
114
117
136
120
130
117
129
113
94
99
98
79
83
103
96
92
121
100
79
90
90
78
76
81
71
73
80
86
69
82
93
101
91
101
110
112
120
97
129
119
114
127
134
87
111
120
97
90
112
111
96
110
124
102
95
114
84
91
105
98
107
111
94
99
105
100
91
114
106
107
132
111
109
134
136
128
130
127
125
129
133
140
150
145
155
170
159
162
163
172
151
138
158
147
143
156
178
152
163
173
161
156
145
166
134
155
155
156
151
160
149
138
145
146
121
114
120
112
117
134
134
115
123
112
107
131
114
113
137
141
127
132
111
88
102
111
103
92
101
105
110
129
130
109
102
99
100
87
90
112
107
114
137
130
136
129
132
124
109
111
112
111
129
131
140
132
156
144
123
148
147
142
151
175
180
175
169
184
180
171
175
191
159
141
147
159
143
156
159
138
136
130
118
131
110
108
134
140
114
108
112
92
94
111
98
90
105
111
113
124
129
110
113
102
104
108
110
122
127
123
138
130
148
138
129
139
127
107
109
115
124
118
124
147
138
115
118
128
106
98
115
126
112
120
127
129
135
125
114
126
112
80
98
107
104
120
121
115
118
109
91
107
105
105
123
153
132
120
134
128
112
117
105
95
101
120
126
135
132
115
127
112
110
115
113
116
125
126
125
156
159
139
139
142
127
120
120
126
128
139
161
155
153
136
128
139
139
131
135
164
169
171
184
191
194
177
177
165
126
142
161
138
152
166
139
147
138
113
119
116
116
115
133
127
121
128
115
105
105
82
82
86
94
106
100
116
116
108
110
113
100
105
99
101
102
118
125
134
147
150
143
139
118
120
113
111
123
137
149
139
139
129
106
104
116
107
100
123
133
148
148
165
155
143
146
127
105
109
110
116
139
127
124
135
119
112
122
117
120
124
140
142
135
154
147
125
120
113
105
113
115
131
123
125
128
117
124
119
115
106
113
106
102
118
119
134
153
145
147
141
116
119
125
117
124
136
140
147
148
138
129
133
126
122
119
142
134
152
172
179
182
179
194
163
143
157
153
137
162
153
147
145
128
131
135
126
113
120
125
123
130
127
120
110
106
94
79
88
98
91
104
104
102
108
113
112
106
106
91
91
104
101
104
130
142
141
133
143
124
110
127
131
117
120
127
127
124
126
116
109
119
115
108
121
124
118
129
140
151
135
147
135
118
127
126
117
140
122
122
128
105
96
134
120
121
128
137
135
146
159
150
146
135
128
135
121
121
127
135
140
131
139
141
130
128
116
100
103
127
122
126
138
141
143
137
142
135
130
131
122
123
118
123
128
137
131
116
133
143
132
128
153
154
152
170
179
165
171
169
125
129
144
141
157
145
145
151
147
128
112
116
104
110
117
118
131
147
130
129
121
101
108
103
93
92
106
119
114
119
122
117
123
118
110
99
105
97
117
112
113
125
133
133
125
129
127
130
122
119
125
121
126
132
128
111
105
111
97
119
125
115
126
152
149
133
138
115
109
121
113
114
124
118
127
132
118
113
123
113
118
123
124
120
138
146
151
152
146
138
136
127
119
125
130
130
134
142
142
141
139
137
123
122
130
126
129
133
136
132
135
135
132
134
127
124
119
116
124
127
138
139
131
123
128
133
112
123
139
135
141
172
166
146
154
147
134
134
145
154
156
148
149
158
155
144
133
127
121
125
129
124
126
135
148
140
128
122
112
100
98
99
102
114
119
115
114
113
105
113
104
100
116
111
109
127
122
120
123
122
122
114
116
113
117
130
126
123
119
129
124
113
113
109
90
110
126
120
114
127
142
133
137
128
117
109
108
121
124
120
130
138
132
130
130
110
111
124
126
128
144
156
151
146
155
148
121
120
131
130
141
141
148
146
148
148
140
131
120
129
139
119
130
136
128
118
132
124
114
121
117
118
117
119
131
136
128
125
120
120
109
103
122
116
120
134
140
143
145
151
151
150
150
159
148
155
156
161
162
161
149
140
130
136
138
137
147
154
149
147
148
137
122
122
123
108
116
115
110
118
121
114
114
109
108
103
105
109
109
109
114
115
105
113
121
119
106
112
113
118
116
114
118
129
125
123
115
114
111
113
116
114
110
117
117
116
108
113
130
122
123
120
120
131
136
129
127
134
126
119
133
138
132
136
151
143
134
144
142
141
131
131
130
124
123
136
133
122
135
138
133
127
125
136
133
130
132
143
140
129
124
137
136
125
116
130
133
119
118
129
124
123
124
116
119
127
131
130
126
129
132
130
123
134
137
131
139
138
133
126
130
127
127
129
126
137
137
140
148
154
155
149
151
151
145
140
136
139
151
144
135
130
125
124
122
137
127
121
136
142
128
118
118
128
118
110
106
110
119
109
115
127
120
114
120
122
114
114
118
111
117
119
108
112
113
116
118
120
114
112
116
121
112
120
123
124
116
112
108
103
102
111
107
106
112
113
119
115
119
125
134
136
128
135
136
136
137
135
136
131
135
138
132
127
135
138
136
136
134
140
144
136
136
139
139
132
137
128
125
140
140
139
137
142
141
134
129
133
140
131
126
130
138
131
126
123
128
130
125
126
123
126
131
128
128
127
125
123
132
129
125
131
130
127
131
126
125
130
134
129
132
132
136
139
139
143
137
141
143
138
132
142
138
136
138
139
133
134
132
124
122
126
121
120
117
118
128
127
119
127
124
121
118
115
111
111
116
114
111
115
115
118
118
111
112
113
115
110
112
110
113
125
117
117
114
117
117
122
124
123
121
129
122
119
119
113
116
117
120
120
123
123
128
132
131
125
130
121
131
131
132
132
138
140
137
134
136
132
134
133
133
132
133
134
136
127
131
134
135
137
139
135
133
136
132
135
132
136
132
137
129
130
132
131
131
130
125
132
128
134
128
126
128
129
123
124
129
131
132
131
133
122
129
125
122
123
131
128
129
126
132
132
133
134
128
137
138
132
133
138
134
136
132
134
129
131
136
129
127
124
125
125
124
124
122
120
125
126
127
126
126
127
124
124
123
124
122
122
118
120
118
118
122
119
122
120
119
124
123
123
122
119
125
119
120
117
122
124
122
125
125
122
122
122
120
117
118
122
118
124
121
125
122
123
119
123
122
127
125
125
128
125
127
127
127
128
125
125
126
124
128
124
131
131
130
130
129
130
131
131
128
130
132
128
128
132
131
132
130
133
131
129
133
134
126
131
134
134
129
130
131
132
130
133
132
131
130
130
135
131
130
127
126
128
128
128
131
126
129
130
133
129
128
128
131
131
135
132
135
135
132
131
131
132
131
133
132
136
127
132
136
133
130
132
130
129
129
129
127
126
127
124
124
128
125
123
123
126
120
124
123
122
119
118
120
121
121
120
123
119
121
124
120
121
123
122
122
120
120
121
122
121
121
120
121
119
120
130
129
129
126
127
128
130
126
127
128
128
127
131
132
128
127
128
127
126
127
128
130
125
128
129
130
126
130
127
129
127
127
128
127
126
127
125
128
124
127
124
123
124
124
123
125
125
128
127
129
129
128
129
126
125
125
128
125
129
126
127
127
130
130
129
128
126
126
128
128
129
131
129
129
129
127
129
128
129
128
129
132
132
132
132
130
131
130
129
130
132
131
130
130
130
131
127
128
128
126
128
126
131
129
131
129
130
130
126
130
129
127
126
130
125
125
128
128
130
129
126
130
128
127
129
129
124
128
128
129
124
127
128
125
128
127
128
126
129
126
127
126
130
128
126
130
127
127
130
127
126
129
126
128
126
125
123
121
128
125
121
121
121
126
122
120
119
120
128
122
124
124
120
123
128
120
122
120
123
124
127
126
124
121
120
121
123
125
125
127
127
130
128
126
123
125
126
131
129
129
129
131
130
129
126
127
126
129
129
129
130
131
130
129
126
126
131
132
130
131
131
130
129
126
124
124
126
125
129
130
128
127
130
128
125
124
125
123
125
128
127
128
129
127
125
123
125
123
126
125
125
127
130
127
125
124
122
125
126
125
125
127
130
129
129
126
128
129
127
131
131
131
133
130
133
131
131
130
129
128
131
130
131
130
130
132
133
131
131
127
131
128
129
129
129
130
131
129
125
127
128
127
127
129
129
132
132
128
126
125
125
127
126
127
125
128
128
127
124
124
124
123
126
124
124
126
124
124
127
127
124
125
125
124
123
121
121
122
121
124
127
124
126
126
128
129
130
129
133
137
131
129
122
116
120
120
118
120
129
133
131
126
131
128
121
121
130
127
128
135
131
126
126
123
123
122
121
125
129
130
133
132
125
123
128
128
127
134
138
128
134
135
122
118
118
124
126
128
128
127
125
127
126
124
117
119
125
117
116
111
107
108
113
111
103
114
121
121
130
139
145
152
158
159
144
151
149
134
130
135
130
139
145
147
146
145
133
128
125
122
119
126
121
123
132
132
126
117
123
114
107
118
118
121
128
132
134
124
113
102
105
110
107
122
129
132
134
135
126
115
107
115
118
117
128
128
132
133
126
126
125
124
127
131
133
131
133
132
130
128
121
125
133
132
138
147
136
134
131
121
123
124
116
123
129
136
142
150
138
132
133
136
134
139
148
149
161
170
153
142
140
128
131
121
125
138
129
111
106
104
81
98
117
93
110
122
119
117
113
99
102
132
91
81
133
129
112
147
146
118
141
145
135
135
139
155
152
152
151
146
152
141
124
120
126
122
139
147
130
130
136
117
113
111
96
110
134
137
88
133
159
161
167
117
137
132
147
109
100
78
70
39
139
48
22
119
94
94
154
161
109
120
152
84
139
142
155
156
136
142
191
127
120
132
153
166
147
162
158
133
150
180
133
99
114
99
100
75
79
81
108
98
104
100
117
155
122
128
118
104
95
125
122
85
152
174
101
139
148
131
122
166
179
141
165
178
155
141
149
125
141
141
138
181
143
120
146
148
121
116
122
129
124
120
115
121
112
111
85
102
134
126
133
151
127
102
121
106
107
113
124
130
149
162
165
172
157
131
144
161
131
136
159
128
156
180
163
184
173
173
157
153
131
86
91
78
94
79
75
96
78
91
70
54
99
96
96
98
89
80
83
96
116
106
114
134
138
143
139
140
141
133
138
152
155
130
135
156
152
124
142
145
127
144
175
156
167
142
136
130
90
94
124
99
137
152
90
108
109
101
90
118
104
73
118
122
121
122
132
113
118
113
127
134
116
126
133
113
128
152
144
123
146
160
151
147
156
160
144
145
152
136
124
132
131
103
125
144
132
144
174
151
138
136
116
113
127
121
116
140
120
103
117
101
121
105
113
173
128
114
135
141
121
115
139
123
107
154
170
137
150
165
156
131
129
142
99
130
132
149
116
105
135
126
99
95
111
120
83
99
79
82
96
109
90
94
96
75
94
105
94
84
136
134
108
113
158
130
104
139
134
140
168
196
169
161
182
202
143
157
171
174
174
151
175
149
125
146
171
149
124
139
146
107
143
117
108
90
105
86
65
99
84
85
45
75
82
69
71
86
91
100
105
110
101
123
117
134
131
144
158
160
142
133
168
189
172
171
203
200
166
189
194
143
164
181
165
167
138
152
157
112
110
132
129
116
123
117
92
103
127
114
101
75
90
92
82
110
124
104
111
123
105
103
103
112
118
103
103
94
109
133
117
133
143
136
167
154
144
120
146
135
132
142
145
129
116
125
142
112
127
152
118
117
138
96
95
98
123
115
100
111
125
117
106
111
136
99
108
148
138
118
130
167
148
158
170
148
144
157
155
135
150
129
139
134
107
113
122
118
109
99
104
96
122
129
108
96
108
129
111
117
117
94
123
111
119
147
130
100
134
149
123
143
164
139
162
168
163
167
165
151
175
168
155
168
166
153
137
135
129
127
143
159
130
127
137
140
134
132
148
112
101
110
104
94
111
99
94
94
98
90
90
85
102
93
86
116
133
130
135
126
132
146
146
142
127
114
116
124
137
135
108
119
117
128
144
133
132
125
146
154
124
135
124
98
134
119
98
110
131
109
132
126
106
130
123
132
150
116
103
132
150
147
155
137
112
129
135
117
124
142
129
129
158
141
112
123
119
102
103
122
122
132
148
125
115
126
125
127
116
88
104
135
120
119
141
114
123
149
142
116
135
158
136
144
161
139
137
134
162
137
122
162
163
147
151
148
133
145
157
161
129
128
144
153
144
156
159
110
115
115
110
124
110
113
150
113
105
127
112
91
88
109
94
109
125
118
92
94
112
115
95
100
96
105
107
113
131
129
130
139
146
141
133
138
128
136
144
132
139
157
130
131
149
144
129
136
143
140
149
155
120
151
136
117
122
110
118
129
122
136
133
111
123
104
99
115
127
129
120
134
132
138
146
123
117
107
109
118
114
119
110
115
137
132
134
127
143
144
142
132
135
145
127
140
152
129
120
138
148
128
136
149
138
132
132
119
119
138
125
125
136
117
140
137
98
126
156
113
101
128
136
107
154
176
92
128
139
125
117
140
137
129
146
164
153
129
125
120
101
104
105
105
104
112
125
126
101
113
125
107
102
136
115
103
122
130
116
119
133
113
109
122
125
115
119
128
137
135
131
137
115
127
137
130
133
146
145
134
122
132
107
106
116
125
140
127
135
141
110
127
146
130
108
114
111
105
134
137
134
115
122
137
127
129
124
118
119
145
154
149
122
149
146
127
132
144
132
125
146
154
140
153
163
156
133
130
130
122
109
135
140
118
133
140
113
130
127
137
132
136
132
106
146
137
142
150
132
131
113
123
117
98
97
93
115
113
121
128
130
138
142
150
125
123
141
120
120
125
125
111
119
121
112
116
125
126
120
119
125
129
115
119
136
113
110
110
117
130
122
116
130
139
138
135
134
127
139
138
143
145
135
126
116
120
139
144
118
111
115
94
108
128
120
96
112
117
103
111
120
115
110
126
135
137
138
134
133
136
129
134
142
145
147
134
137
148
132
130
125
129
144
130
124
146
144
143
161
142
139
134
131
138
130
135
152
133
125
140
147
137
147
141
116
121
140
132
116
127
110
93
107
105
97
105
127
131
120
122
120
113
113
118
123
131
125
143
133
121
126
120
121
117
110
127
132
121
125
116
108
118
110
127
133
112
108
120
127
137
143
139
120
110
120
123
128
130
120
114
122
137
129
123
132
131
128
128
129
119
119
121
125
127
121
126
134
140
135
145
155
153
144
142
131
137
133
129
129
150
151
142
139
144
133
138
139
143
146
136
127
138
138
134
139
133
128
120
122
117
122
133
141
129
122
130
129
126
135
126
124
118
115
120
110
118
125
125
130
140
129
132
124
117
120
120
121
116
101
101
118
104
113
109
117
110
103
102
100
122
141
137
125
134
132
124
130
119
112
123
118
110
113
116
128
127
123
135
132
129
125
122
127
116
122
112
96
95
124
114
108
98
74
115
152
151
192
196
211
187
223
163
133
111
101
99
103
92
101
102
35
80
96
92
124
170
137
155
187
176
184
160
172
130
235
186
93
122
148
200
132
110
109
149
126
182
145
141
185
178
145
135
87
125
147
118
51
138
86
66
133
87
39
110
109
78
102
90
90
104
92
55
67
90
124
94
93
140
149
179
191
190
182
176
184
219
190
142
151
149
158
113
112
147
164
146
107
106
99
103
138
94
74
87
95
71
55
67
78
102
121
115
117
131
105
111
120
132
145
152
137
145
167
150
151
136
159
158
143
168
162
162
166
168
183
153
126
110
128
125
105
112
171
176
135
88
85
93
90
86
79
74
65
94
86
71
75
97
84
79
94
120
139
145
166
149
136
158
160
130
142
164
174
171
192
205
177
182
153
156
132
118
122
142
132
122
133
114
94
78
100
99
72
90
119
103
127
112
90
74
87
61
97
130
151
148
141
162
144
139
144
121
133
122
135
119
148
160
170
166
163
184
158
161
174
161
152
161
143
126
135
136
142
135
143
120
117
90
104
49
67
67
45
57
54
56
87
110
85
84
84
105
152
154
176
177
186
184
163
164
173
179
171
175
185
221
208
202
182
162
134
127
130
112
116
119
135
122
126
103
85
57
83
95
65
59
101
105
81
72
116
91
66
76
79
81
63
88
117
106
105
119
136
122
126
144
150
137
147
143
154
162
178
159
170
175
182
191
163
164
155
149
162
173
158
122
108
131
143
93
79
130
104
99
86
112
102
123
115
92
127
128
106
107
85
98
109
118
121
102
118
153
156
135
125
156
138
144
165
157
176
183
147
122
123
127
120
105
145
115
123
130
123
108
100
118
99
101
116
148
156
174
174
169
164
138
151
131
122
119
112
106
125
122
113
129
160
138
145
147
132
132
123
126
139
142
146
142
145
152
153
91
131
113
109
115
123
75
111
118
78
89
99
113
107
99
97
95
80
115
89
90
135
106
94
94
120
121
114
104
126
109
158
132
133
131
146
150
147
143
128
137
139
137
127
150
130
153
180
145
123
176
153
125
163
207
173
166
149
146
133
133
107
55
37
77
67
63
64
88
82
123
114
99
110
128
119
138
108
132
140
144
149
120
130
156
143
112
120
143
137
136
141
144
175
153
180
156
167
181
189
172
163
162
147
158
135
101
141
142
136
142
143
149
139
149
114
110
146
118
121
115
125
126
139
126
91
91
112
117
107
102
128
118
105
110
95
81
117
107
111
125
127
113
107
111
106
114
104
88
107
100
95
95
92
84
97
122
112
102
130
137
121
144
135
133
140
134
132
114
103
105
148
146
109
139
167
143
146
171
129
149
187
165
166
185
174
162
171
128
99
105
82
75
91
110
118
104
100
111
105
70
80
104
96
122
113
110
117
123
127
105
121
127
108
117
128
108
132
136
137
151
163
172
195
204
193
189
215
203
184
183
151
151
170
157
138
142
161
149
123
133
130
120
128
117
102
120
142
108
117
118
85
90
66
59
96
98
97
105
117
115
138
110
92
118
128
109
115
112
108
113
119
110
109
97
120
113
100
107
106
122
124
119
130
132
119
138
152
125
130
173
155
139
134
135
125
109
109
104
102
115
116
115
132
136
125
118
142
140
150
174
160
171
167
147
128
97
132
142
116
125
160
154
132
131
122
97
101
124
115
110
119
143
142
108
114
108
104
114
128
100
88
107
110
103
102
114
124
133
125
153
167
173
190
205
188
177
184
173
148
160
160
151
148
153
164
179
158
146
139
142
129
112
136
135
126
168
138
118
123
109
110
92
78
98
116
109
105
114
105
90
91
94
79
95
89
85
94
85
89
111
107
109
113
111
107
112
126
126
129
144
146
127
111
121
135
131
137
146
137
138
140
125
115
120
131
129
118
119
122
125
123
100
119
128
107
136
146
156
142
136
133
138
144
122
142
128
135
154
160
128
136
122
111
84
109
113
119
124
130
142
135
132
122
139
154
128
124
100
128
117
99
93
118
111
108
139
123
136
156
153
169
149
159
155
160
158
151
139
157
162
161
158
183
180
166
157
130
124
142
146
134
152
143
136
128
95
93
106
93
97
130
118
99
116
116
90
96
96
79
96
98
95
91
93
126
133
116
102
125
125
113
120
133
131
132
133
129
111
103
125
125
130
131
127
124
128
130
124
115
121
126
107
114
121
113
117
148
155
120
135
156
130
115
121
124
157
140
138
152
124
107
124
125
111
129
139
121
138
132
116
135
134
143
127
131
136
112
118
123
118
114
116
127
125
117
119
124
118
117
128
130
112
129
137
112
126
143
149
170
158
155
159
165
159
156
147
143
152
131
134
143
142
155
168
166
157
173
156
160
144
124
126
144
118
108
119
109
111
108
100
110
119
112
120
109
101
118
117
114
101
111
94
93
86
79
104
105
107
106
104
123
126
103
97
111
100
115
129
126
128
128
120
125
124
118
122
143
133
114
129
136
120
124
123
123
119
119
137
114
106
128
147
136
135
138
113
129
144
129
134
134
124
132
123
109
129
133
135
160
148
126
137
142
142
144
126
129
149
134
119
119
125
117
130
132
126
135
146
135
140
128
128
125
119
124
133
142
137
133
132
128
149
135
131
136
129
131
136
176
168
147
164
162
135
138
138
117
123
142
137
134
148
135
142
139
125
142
123
121
111
100
124
121
114
130
140
119
109
109
90
88
99
115
120
117
116
120
130
115
100
100
111
99
100
114
120
115
126
122
113
118
125
113
101
109
111
119
115
121
137
131
113
114
117
109
143
140
122
137
151
129
132
139
118
114
135
118
115
133
107
119
138
142
160
150
165
161
120
120
144
123
124
139
146
142
160
141
127
130
115
116
94
94
101
112
128
126
134
141
135
130
128
128
121
109
113
131
136
133
142
133
131
137
152
152
148
147
155
165
164
162
165
176
157
149
145
125
127
130
122
134
143
149
132
129
100
92
105
96
102
120
124
130
125
100
123
132
118
111
133
132
116
124
110
110
112
124
128
117
106
108
104
90
97
97
109
126
129
137
141
130
125
115
113
107
107
95
93
104
119
121
117
118
118
112
110
100
103
106
139
142
139
151
148
139
129
117
112
122
128
130
141
155
152
137
138
136
142
131
120
127
140
136
147
145
130
147
153
160
147
141
149
143
139
121
102
113
120
125
112
106
113
117
119
122
115
108
117
132
141
138
144
152
154
136
131
134
126
125
137
145
141
137
156
153
138
142
143
142
143
150
140
141
162
158
140
131
127
116
118
125
123
121
125
137
131
130
128
124
107
96
104
94
106
113
91
98
108
114
123
128
120
121
132
123
110
102
123
121
124
120
117
120
120
124
107
97
103
116
123
131
132
133
134
136
131
114
111
111
109
101
105
112
112
122
125
118
124
124
125
123
127
123
133
137
132
128
115
120
124
124
146
166
149
145
157
164
150
148
147
128
131
138
127
113
115
129
117
110
119
123
136
144
137
138
152
139
131
133
132
126
129
134
129
132
120
110
118
122
128
135
138
148
155
157
156
155
152
149
148
149
137
125
133
134
120
116
129
118
126
134
132
134
139
131
132
124
100
118
133
128
120
138
140
122
125
128
117
110
119
118
114
121
115
103
105
98
95
90
93
97
92
118
117
120
137
143
150
143
137
136
122
122
121
121
120
121
123
121
119
116
111
106
98
107
122
123
125
131
136
138
136
124
118
121
122
117
112
110
124
130
116
108
124
140
127
125
128
113
122
136
133
140
144
160
168
164
159
159
164
157
146
143
145
135
134
139
128
123
131
121
114
123
123
124
135
131
123
138
145
124
125
130
140
135
138
138
137
134
125
126
127
121
129
132
123
112
121
127
119
139
140
145
149
152
149
139
134
133
137
138
124
132
132
133
132
127
120
110
103
97
112
118
114
117
115
110
114
113
103
114
128
132
138
139
133
129
114
99
96
101
97
100
115
123
124
136
127
123
126
122
109
107
109
108
118
129
125
130
139
141
142
137
143
139
128
117
120
120
120
127
124
118
116
120
123
112
116
129
133
135
131
120
121
130
137
138
134
133
133
124
120
129
127
133
133
133
136
143
140
137
137
127
130
139
144
132
142
157
163
162
151
143
137
121
107
112
118
119
135
132
133
146
141
131
128
123
117
116
116
113
114
133
131
130
132
135
140
145
153
145
138
147
146
147
148
142
139
138
126
120
117
120
135
136
132
130
132
129
130
136
139
128
126
127
117
114
114
109
116
109
103
101
101
106
102
98
102
102
106
113
116
109
114
133
141
142
136
134
132
117
110
116
119
120
114
118
125
127
142
142
121
124
126
115
108
109
112
115
130
125
115
130
146
142
134
137
138
144
144
139
138
136
130
125
116
109
119
127
125
122
124
128
129
132
136
138
141
144
139
130
130
133
129
130
132
132
139
140
128
123
132
133
132
132
125
124
134
131
127
151
157
157
160
144
131
131
128
121
117
121
116
122
138
136
142
148
135
130
127
111
109
120
126
119
120
127
119
130
134
129
131
137
140
141
142
148
145
143
137
133
126
121
123
125
127
120
117
125
123
120
127
129
125
127
125
117
112
119
115
114
120
119
125
123
115
102
98
107
111
102
95
99
108
111
110
123
139
140
144
143
128
122
125
123
114
115
122
127
126
133
135
136
136
136
123
114
122
128
125
125
117
110
122
121
120
127
137
136
139
148
147
143
152
145
137
129
126
128
125
119
120
123
122
121
127
126
131
132
130
137
133
134
137
132
128
144
140
145
146
139
139
136
128
121
129
132
116
118
127
131
135
143
137
141
146
145
139
129
124
118
115
116
120
119
116
131
140
133
129
131
128
120
120
129
128
123
128
131
126
119
117
106
119
128
132
141
148
152
153
149
141
136
139
139
133
129
126
129
128
122
117
124
130
125
125
125
116
115
115
108
107
113
118
124
131
125
120
125
123
117
111
105
100
99
102
105
111
113
108
120
128
126
125
124
130
129
127
132
133
128
133
134
124
118
125
130
124
123
124
123
123
127
127
126
128
131
127
123
125
130
135
133
137
135
132
137
137
142
136
130
136
135
128
133
130
125
124
137
139
134
139
137
131
130
128
124
126
128
128
131
132
134
135
137
142
143
132
127
133
135
131
125
129
134
139
138
132
143
137
123
128
122
116
118
120
123
127
137
137
129
121
117
114
119
120
116
113
122
128
136
133
128
127
124
121
120
123
130
128
133
135
135
135
136
132
125
125
127
134
136
133
134
137
139
137
136
130
120
110
114
115
108
113
122
123
124
122
125
130
126
121
118
121
106
103
111
114
118
117
128
139
131
127
128
122
118
107
100
97
96
106
110
119
133
142
141
149
150
143
137
138
133
129
132
133
129
127
119
116
117
118
120
130
133
130
129
132
132
138
133
127
127
123
123
127
125
125
131
141
139
141
140
137
129
129
128
125
119
119
119
121
125
134
144
147
143
142
139
128
122
120
114
123
123
120
121
124
122
124
130
135
131
129
130
123
116
116
120
124
122
119
119
121
131
141
149
161
160
162
159
152
146
137
129
122
119
118
119
118
115
131
134
133
144
151
146
134
143
137
113
100
106
105
102
125
102
127
135
113
110
121
123
117
115
125
114
111
115
108
101
112
113
112
116
119
114
130
137
127
125
120
126
138
123
130
128
114
114
132
140
139
131
135
134
123
126
130
115
114
115
128
131
125
144
151
145
146
145
130
137
149
135
129
129
109
118
120
106
107
120
127
124
129
134
133
136
129
115
132
142
139
133
131
132
114
119
127
128
121
138
157
138
138
144
131
119
120
114
108
127
124
123
137
134
133
120
139
143
125
123
147
117
120
140
144
128
126
147
132
109
137
137
116
131
136
119
112
130
131
107
104
101
101
109
112
127
138
112
131
143
130
117
130
130
124
135
133
114
117
128
117
115
119
121
130
149
121
115
117
102
102
131
117
128
132
159
141
155
147
119
131
132
118
127
146
158
172
175
65
138
133
224
217
179
133
98
78
81
100
73
74
78
53
62
80
91
94
104
95
115
122
110
114
114
101
96
115
127
127
133
118
156
153
163
150
137
159
159
176
185
198
183
192
198
178
176
180
189
195
207
200
201
181
174
154
147
152
127
123
142
136
119
121
136
117
101
116
123
106
107
100
104
73
88
95
70
89
88
58
46
52
34
45
84
62
50
80
47
41
57
54
80
59
45
61
83
105
101
106
128
120
148
121
121
114
133
164
145
136
144
176
142
167
189
161
157
158
150
148
144
183
153
161
185
162
191
186
176
189
178
173
207
198
184
202
183
149
178
191
170
188
198
181
186
160
162
125
134
141
116
149
139
112
144
148
130
114
114
112
109
129
131
94
79
99
105
100
88
116
119
91
96
105
126
86
83
92
74
66
96
110
110
99
98
83
79
84
76
86
75
88
80
82
92
89
84
80
89
68
63
81
52
67
38
79
67
66
118
132
109
108
113
91
71
103
123
106
134
149
144
149
154
128
118
129
130
135
161
162
192
214
203
193
189
159
147
187
200
180
227
243
228
247
242
182
176
171
164
162
181
175
172
182
176
165
130
148
153
116
119
162
157
162
181
149
155
130
113
118
142
103
105
140
89
104
129
124
85
101
101
67
111
138
112
124
148
152
115
128
123
87
102
102
104
94
109
115
85
59
53
38
68
80
100
102
103
93
89
102
74
58
85
93
99
103
127
120
129
110
91
105
117
119
112
128
133
141
161
130
125
138
118
112
117
124
141
154
153
130
150
154
126
105
132
146
147
169
167
145
151
176
152
132
141
143
133
122
121
144
148
135
131
134
93
100
154
145
91
140
139
110
100
131
90
73
131
118
105
148
164
129
107
133
112
100
102
81
106
92
99
129
118
127
100
108
123
120
127
166
170
134
146
154
120
130
146
149
140
131
156
131
132
141
142
143
144
122
165
133
126
136
128
143
149
157
133
142
139
143
149
169
190
190
163
169
126
128
141
131
106
99
115
119
117
120
133
98
115
115
99
87
131
120
96
134
149
131
126
132
116
112
129
160
129
120
132
138
117
132
132
128
150
171
172
184
159
159
149
151
163
148
145
109
139
144
123
115
116
128
103
125
118
123
102
143
121
115
102
104
122
100
108
87
65
83
85
99
101
102
89
108
130
94
88
96
87
79
137
107
112
113
120
98
96
131
114
110
105
122
96
107
106
126
114
98
122
133
142
131
121
129
108
129
125
130
136
118
126
106
136
111
120
110
112
115
143
132
90
162
160
118
110
141
93
113
142
129
136
161
151
139
151
154
136
146
120
111
173
138
145
143
143
140
153
134
141
123
161
152
157
175
165
166
150
141
150
162
148
130
118
170
115
146
167
131
141
158
143
161
154
147
136
125
118
111
155
109
129
127
156
122
162
162
148
159
146
143
103
147
102
109
111
113
102
83
112
86
92
84
103
81
85
114
107
108
104
82
117
82
112
95
114
97
140
125
135
108
104
93
126
122
128
122
110
150
145
160
162
148
123
162
161
137
165
160
139
155
118
136
139
104
119
145
132
136
150
131
118
138
135
89
112
134
114
107
87
89
89
133
107
108
127
126
125
150
140
91
134
112
80
138
129
112
115
131
125
139
131
134
128
104
116
130
111
114
123
120
107
119
126
126
124
127
147
141
146
157
157
110
142
110
113
107
104
129
112
147
147
124
120
144
110
113
133
132
128
124
136
144
132
127
164
109
135
141
129
142
134
133
146
145
113
137
127
120
127
109
127
124
147
146
169
157
159
143
134
138
140
138
133
107
126
132
122
147
164
147
144
173
142
155
146
137
113
143
102
131
140
136
142
166
150
128
146
144
130
120
150
152
139
135
152
114
124
86
94
67
100
103
106
102
104
120
99
114
92
85
89
103
70
97
102
112
122
137
119
104
119
96
96
113
112
111
137
127
146
121
155
136
154
123
140
151
148
149
165
177
132
155
140
132
106
131
125
129
146
144
136
133
126
134
138
109
106
119
153
89
115
101
90
76
144
105
108
140
141
128
131
140
116
131
110
118
122
116
106
133
117
108
114
142
121
143
151
125
125
135
130
119
142
113
121
131
111
102
157
139
124
161
142
125
134
100
111
104
120
132
139
146
133
149
134
131
109
147
133
126
141
141
135
159
158
130
140
132
108
132
140
136
159
157
137
143
138
130
114
100
88
83
125
136
129
144
162
151
168
154
140
105
120
129
119
129
113
135
132
145
119
170
130
141
143
136
145
131
129
141
127
111
127
134
126
149
112
127
123
118
140
153
123
140
155
157
146
125
137
90
86
81
99
84
88
119
130
98
134
100
99
100
82
67
81
111
104
104
129
137
120
116
102
113
117
118
126
129
109
164
149
142
133
141
118
129
151
146
156
156
181
148
155
153
139
120
128
122
130
142
157
130
140
139
174
145
111
124
134
113
104
112
109
109
91
115
117
120
136
140
98
117
141
141
144
127
116
120
110
109
119
107
115
103
122
121
152
126
130
132
117
132
132
127
118
122
99
99
90
116
120
120
157
146
147
140
159
129
121
92
130
129
130
146
168
139
110
149
146
125
133
138
140
124
136
162
131
127
133
132
101
132
123
127
145
161
159
135
152
134
126
100
123
92
118
123
115
128
131
134
150
158
149
141
127
109
104
145
106
141
129
130
130
136
129
134
135
134
140
125
169
137
131
116
121
125
127
144
145
120
136
117
107
129
140
153
149
148
134
146
156
128
95
100
86
88
113
116
103
126
136
119
133
129
90
81
84
100
88
122
106
118
130
113
111
96
109
101
123
119
120
119
156
133
121
123
113
105
111
138
134
166
161
166
162
151
145
108
137
138
119
148
158
129
138
151
146
140
157
132
119
139
127
115
121
115
104
106
131
137
142
135
119
130
137
139
151
157
129
117
132
115
121
138
111
94
126
113
128
125
128
140
133
132
115
141
132
100
112
82
116
114
99
121
151
134
147
128
141
115
115
146
107
120
139
150
141
136
127
127
118
119
120
118
129
178
147
122
152
143
111
111
114
118
128
136
153
139
146
143
149
120
93
109
112
101
111
119
133
139
109
144
140
129
148
139
111
115
155
130
132
143
129
138
133
102
140
111
129
125
132
157
162
159
151
151
119
121
130
165
114
125
133
122
126
151
135
146
162
150
128
147
123
109
113
107
110
105
101
120
111
99
106
127
126
111
109
95
103
89
108
94
107
102
132
112
107
87
99
113
97
131
121
146
124
140
134
126
121
98
126
143
142
149
181
165
161
147
131
126
144
155
148
142
151
149
154
140
144
154
135
131
122
126
123
121
119
105
94
124
129
112
129
131
116
88
131
128
127
150
148
116
134
121
120
121
111
81
107
114
107
124
137
110
125
140
129
120
123
128
108
101
97
113
128
124
123
137
141
116
147
140
123
129
148
130
131
138
138
137
135
136
129
123
110
125
141
149
150
152
151
143
138
109
121
134
130
134
129
146
123
133
134
142
120
111
124
114
109
107
114
130
113
124
124
147
128
119
131
112
103
148
147
131
131
120
136
116
129
114
111
124
127
131
149
147
158
161
162
161
142
136
143
133
117
121
137
138
130
144
153
155
128
157
125
127
115
132
127
109
118
130
115
127
120
98
116
129
108
122
102
110
104
105
104
109
107
102
111
97
97
83
104
108
106
125
127
122
113
122
106
124
108
129
145
138
158
149
155
151
136
146
146
138
157
136
152
157
130
140
157
151
141
127
126
115
119
134
102
106
110
108
97
115
115
128
134
114
107
98
131
124
141
158
143
152
142
149
124
122
104
107
123
114
119
122
122
110
155
121
121
127
120
101
111
114
131
144
132
135
110
128
128
120
98
126
136
127
139
145
118
134
143
130
107
104
109
101
133
141
154
147
148
147
133
88
117
136
129
137
130
153
146
133
140
135
127
165
146
111
119
132
122
135
123
123
143
147
128
120
121
100
132
132
140
149
150
144
123
121
120
125
138
112
86
96
118
139
145
145
153
160
157
132
137
122
126
124
127
119
137
148
153
133
136
135
125
129
107
116
125
132
128
132
129
156
135
110
79
86
102
102
133
117
111
137
131
114
111
102
103
81
69
85
96
89
118
126
112
123
107
102
106
119
116
144
121
154
157
163
141
134
130
144
162
156
152
138
155
145
145
148
159
137
137
153
129
115
129
134
107
115
128
142
126
125
125
128
141
116
113
119
115
121
128
131
134
133
123
142
123
126
126
124
100
103
118
130
115
102
97
100
110
124
132
114
118
124
143
113
126
134
132
130
118
114
113
134
125
135
130
144
144
153
134
136
128
124
125
111
127
137
125
125
134
124
122
134
135
120
115
133
130
135
146
127
120
115
109
141
125
134
126
120
120
128
140
131
129
134
135
150
139
124
117
118
122
128
135
136
143
145
135
140
140
142
134
112
128
97
117
114
121
139
135
137
136
155
147
143
146
140
141
137
141
134
130
128
127
127
117
130
120
109
115
107
135
145
134
130
121
89
111
126
113
107
112
126
139
126
127
122
98
105
108
108
93
96
103
107
79
98
128
110
111
133
124
119
139
129
131
122
129
126
142
145
140
140
138
152
140
156
136
164
148
156
153
151
146
124
129
117
124
115
125
126
129
136
113
121
126
143
154
128
117
109
121
135
129
114
122
127
123
137
138
128
120
114
116
126
122
118
121
118
112
102
112
136
126
108
123
119
115
122
117
112
108
120
115
121
117
123
127
124
132
127
119
133
141
138
140
130
128
132
138
123
127
121
129
136
137
136
134
134
122
138
133
130
138
135
132
141
133
125
118
121
131
129
122
124
125
130
125
126
133
132
135
130
130
129
135
137
126
128
118
134
135
126
143
125
131
133
137
122
134
131
126
130
131
138
140
144
132
142
142
147
139
140
145
141
140
152
138
141
141
136
136
120
122
122
118
125
119
120
118
116
111
108
111
109
112
107
100
107
115
107
110
110
107
113
112
99
104
100
108
102
100
107
112
124
118
131
123
132
144
149
141
132
137
139
147
140
149
141
141
141
145
139
146
137
128
138
126
132
122
129
131
126
136
130
125
130
136
120
131
127
120
121
117
122
121
123
116
121
120
116
117
113
114
117
116
116
129
125
120
120
119
121
116
124
125
124
120
126
127
123
134
124
133
129
132
134
134
129
132
141
132
130
131
127
135
130
141
125
147
126
130
138
123
129
128
125
124
131
128
128
128
118
129
125
128
134
125
121
121
124
131
126
129
132
127
125
132
125
128
133
136
126
125
136
137
129
137
132
135
143
137
139
133
141
132
137
138
137
133
139
129
134
135
133
139
132
131
128
135
132
140
132
139
143
142
144
141
149
139
139
129
138
131
126
129
118
119
117
119
114
112
110
112
109
103
107
112
103
106
102
102
101
108
102
100
107
97
107
105
107
99
108
103
110
104
111
118
121
120
131
133
134
145
134
143
136
144
156
147
157
148
151
152
149
150
144
146
141
146
144
146
141
137
135
137
133
132
138
123
130
124
128
120
127
123
124
118
114
123
119
110
120
114
110
114
123
113
117
117
117
125
113
122
119
122
118
122
123
118
124
120
123
113
128
124
124
133
122
125
131
127
127
133
129
130
129
122
127
128
130
127
133
125
128
140
136
123
131
127
127
128
128
125
127
129
128
132
128
132
127
127
130
131
136
125
136
128
132
128
127
126
130
132
133
128
129
133
134
134
135
139
136
135
139
135
130
143
126
129
138
130
136
133
130
129
131
125
129
134
122
127
136
124
134
134
132
133
137
140
136
138
131
137
131
133
130
132
119
123
121
116
123
119
116
115
113
116
110
114
116
105
117
115
109
111
114
107
109
109
113
115
112
115
111
114
103
118
116
111
119
121
133
131
135
134
140
140
141
143
143
143
148
146
146
145
146
146
143
141
141
139
138
136
141
138
134
136
137
127
139
127
127
126
125
124
120
128
121
126
124
120
122
123
119
122
115
119
114
116
116
118
118
120
119
114
122
122
121
120
125
117
122
118
121
125
117
122
121
123
124
122
126
124
120
126
131
127
134
125
131
115
132
128
129
130
125
133
130
136
130
137
129
129
129
130
132
130
134
125
131
130
136
141
134
137
130
132
134
129
134
130
132
134
129
139
137
128
137
133
136
135
142
137
138
137
136
133
133
127
130
131
127
130
129
128
129
126
123
124
134
130
125
129
127
123
133
122
129
124
127
131
130
130
127
128
129
123
128
129
124
129
125
125
129
125
127
130
121
127
120
128
121
125
125
119
129
120
123
122
121
119
124
122
122
119
122
121
124
117
121
121
118
119
119
118
119
126
119
126
125
125
123
128
126
128
131
122
129
124
123
130
124
131
123
131
125
127
127
125
129
128
127
125
131
127
133
125
125
124
125
133
122
129
124
129
128
130
129
128
129
125
130
128
127
132
124
129
129
131
129
133
124
129
124
125
127
128
132
126
128
129
125
128
128
127
128
129
130
133
128
136
126
132
129
128
132
127
131
132
135
130
133
136
131
134
130
131
126
132
132
129
130
131
135
127
134
126
133
127
133
127
131
131
130
130
123
131
130
132
126
133
126
127
134
128
134
125
134
126
128
130
128
126
128
128
118
128
122
126
127
125
125
124
124
123
126
119
123
125
120
125
120
126
123
121
126
120
130
117
128
122
127
125
127
129
122
126
122
131
125
129
126
129
133
125
132
128
129
126
131
125
129
127
127
131
127
129
128
133
124
127
126
125
131
119
132
119
128
122
126
129
124
128
131
124
122
127
126
127
127
126
125
126
131
129
128
124
125
130
124
128
133
127
128
128
126
130
128
130
128
125
133
122
132
128
130
127
133
129
129
131
130
129
128
130
127
133
126
130
130
125
131
125
131
127
127
131
128
125
127
128
125
128
125
128
125
125
125
129
125
129
124
129
123
123
129
125
121
130
126
125
132
124
128
126
125
131
125
125
123
126
124
127
127
126
128
129
127
128
124
129
124
126
127
129
125
130
129
128
131
129
131
133
124
131
134
129
133
136
128
135
132
132
133
132
127
134
126
130
133
130
131
133
126
131
128
126
126
124
127
126
128
127
128
121
124
123
122
125
122
129
124
129
121
131
122
129
125
126
125
128
130
126
130
126
127
132
128
127
130
122
130
125
130
125
126
127
125
129
126
128
127
123
124
127
122
125
126
123
127
125
128
125
125
123
126
128
122
130
124
125
127
128
126
125
124
127
124
127
128
127
132
126
127
129
126
128
128
125
126
130
128
124
130
124
126
129
128
128
127
127
122
125
128
126
129
124
129
123
128
129
127
126
124
125
127
123
126
128
131
124
129
126
128
126
125
128
127
126
129
128
130
126
132
127
130
126
130
129
129
127
129
129
131
129
134
130
128
132
129
131
129
127
134
128
130
128
127
130
128
129
127
130
127
129
126
127
124
127
127
122
129
120
133
121
129
127
127
127
127
130
124
131
121
129
127
128
129
129
128
126
133
123
135
129
125
126
129
124
130
125
127
128
125
129
131
126
128
126
127
119
129
124
129
126
125
130
123
131
129
126
127
124
128
129
123
130
128
126
129
131
125
128
122
129
126
128
126
127
125
122
129
126
126
124
128
123
128
125
126
125
125
126
125
127
122
128
125
124
129
129
125
127
125
125
127
125
126
123
126
128
127
126
132
128
126
124
127
127
127
126
126
124
128
129
132
121
132
124
127
131
125
126
126
126
127
131
126
127
129
123
128
129
123
129
125
126
127
128
124
133
127
127
126
125
129
125
123
132
123
129
128
125
128
126
131
127
129
120
137
125
128
129
126
130
131
130
129
132
124
132
129
127
132
130
130
128
133
126
132
130
129
128
133
129
129
128
130
125
127
125
128
124
130
125
127
128
125
130
123
124
131
125
126
125
127
126
129
126
126
126
129
124
129
125
128
127
128
126
122
129
125
127
126
127
123
131
122
124
125
123
129
126
126
129
125
120
127
127
125
127
126
128
130
126
125
133
122
130
128
128
133
124
125
129
125
131
126
128
127
132
124
128
127
124
125
128
125
127
128
122
131
123
122
130
125
124
130
122
125
131
126
125
129
122
125
125
125
128
125
124
130
130
124
131
126
129
125
126
129
127
125
127
128
123
133
124
131
125
129
124
128
132
124
134
124
129
129
129
125
129
125
125
130
126
128
123
129
128
128
128
126
128
126
128
122
129
124
126
127
128
127
129
130
126
128
123
128
125
129
127
124
127
128
130
125
133
125
128
130
125
131
128
124
129
130
127
128
132
123
132
125
130
125
133
123
131
131
124
128
126
129
124
126
124
127
129
121
126
127
132
124
127
128
123
130
124
130
125
129
126
127
131
121
130
126
129
126
132
126
127
128
126
130
126
130
124
132
130
123
127
129
128
126
126
127
124
124
127
123
128
124
126
125
130
124
130
127
127
128
126
126
130
125
124
129
128
127
125
129
125
125
128
132
124
127
128
126
127
129
124
126
127
124
127
124
127
130
124
123
129
125
124
130
127
123
126
127
126
128
124
128
126
128
124
133
125
125
132
124
129
129
127
125
128
127
129
125
130
129
124
131
124
129
126
132
123
130
125
127
125
128
128
126
128
131
123
127
128
130
124
131
130
125
130
127
125
126
128
124
131
125
128
128
122
135
127
129
125
129
127
127
127
127
130
125
132
123
130
122
131
126
130
127
126
130
125
129
128
128
127
127
130
125
129
124
128
129
128
125
129
129
127
128
124
126
130
124
127
126
128
126
128
126
126
131
122
130
123
132
123
130
122
125
125
127
127
126
127
127
128
130
125
128
123
129
122
124
128
127
127
128
125
130
124
127
127
123
125
131
123
128
127
125
127
126
127
127
129
123
127
126
130
129
128
126
129
125
125
129
126
128
127
126
129
127
130
123
129
128
126
127
129
127
129
125
130
126
126
128
124
129
129
125
129
129
128
126
128
126
125
129
128
125
130
122
131
125
125
129
126
129
129
130
126
127
128
127
126
131
125
126
132
124
129
124
127
126
131
127
128
130
123
129
126
127
127
125
130
126
128
125
132
127
126
127
129
123
130
127
124
131
123
130
129
123
133
122
131
125
128
127
127
129
128
127
126
131
126
128
126
129
128
130
127
128
126
129
127
130
124
129
127
129
126
128
127
123
131
127
126
129
131
124
132
125
130
127
124
129
126
127
126
127
130
127
127
124
126
128
127
126
128
124
129
127
126
127
127
129
128
125
126
128
126
125
127
126
131
126
127
130
126
127
127
122
126
128
129
128
128
129
130
125
127
128
126
125
125
128
123
131
126
128
128
121
130
126
127
128
127
126
130
128
126
127
126
127
127
127
125
128
126
125
129
126
131
125
125
126
127
128
126
124
133
127
127
128
130
127
129
125
129
126
128
127
128
130
123
131
124
129
129
127
126
125
131
128
127
129
125
127
130
127
128
130
123
130
126
131
125
129
129
125
133
124
127
129
126
128
126
129
126
130
125
129
127
129
126
131
129
127
128
126
131
126
130
126
128
130
129
127
132
125
128
127
127
129
128
124
130
129
125
131
128
127
124
128
125
130
127
130
128
126
129
128
125
128
125
127
125
127
129
126
127
127
125
124
129
123
127
126
126
128
128
126
126
130
124
125
125
128
129
124
125
132
124
128
128
126
127
128
126
127
129
127
126
130
126
126
129
126
127
127
127
130
125
128
127
126
128
125
127
129
126
126
129
128
127
126
127
126
130
126
125
131
123
129
128
128
128
129
122
130
129
125
126
129
129
128
128
125
128
126
128
130
124
130
130
126
131
128
126
128
126
130
130
125
128
131
127
128
127
129
126
125
125
129
128
122
134
124
132
128
124
131
124
127
130
128
128
125
130
129
128
126
132
124
129
129
127
127
126
128
127
128
127
129
126
126
131
124
127
129
128
125
127
128
127
129
126
128
124
129
125
130
126
128
124
129
127
129
127
126
124
128
128
125
129
124
126
130
126
127
129
125
127
127
126
128
129
125
128
128
125
128
126
127
128
127
123
130
126
129
127
127
128
128
126
129
126
126
128
126
130
127
125
124
130
124
129
124
125
132
128
125
133
121
130
128
125
127
132
123
130
126
128
126
127
128
127
129
127
127
126
129
126
125
131
128
127
132
127
126
132
122
134
128
125
125
130
124
130
127
127
124
131
126
129
128
127
129
125
127
126
128
125
128
126
129
126
129
128
125
127
128
128
127
129
126
125
129
126
130
125
127
128
126
126
132
124
129
130
126
127
127
129
128
126
127
127
127
132
125
127
124
131
127
130
125
129
126
130
127
127
126
127
125
130
129
125
127
129
126
128
128
124
129
127
125
130
127
127
128
127
126
125
126
127
130
126
127
127
130
126
128
126
127
125
130
126
127
128
126
125
128
127
126
126
125
130
128
127
127
125
129
123
129
125
129
128
129
124
128
127
128
124
128
126
126
128
127
130
125
128
126
132
124
128
125
130
126
128
125
127
122
129
123
129
126
127
128
127
127
128
130
123
128
127
127
128
129
127
127
130
126
135
122
130
127
126
126
130
128
128
126
129
128
126
128
125
130
129
126
124
129
128
129
126
126
127
131
128
127
126
124
130
127
126
126
128
127
128
128
130
126
128
126
129
127
127
129
126
129
125
131
126
128
127
127
127
128
127
126
129
127
124
126
128
127
127
129
126
130
123
131
129
124
125
130
122
130
127
127
129
125
129
128
125
126
129
124
127
127
125
130
125
128
129
127
129
131
122
128
129
126
130
128
126
129
127
125
130
127
125
128
128
122
130
127
127
129
127
124
128
127
128
126
125
128
128
128
126
127
125
128
127
129
128
125
130
125
128
129
128
125
128
122
128
131
123
128
128
128
130
126
124
128
128
126
128
125
130
126
129
127
125
128
129
126
127
127
130
127
127
128
126
127
129
128
125
129
128
126
128
126
127
129
125
125
129
126
128
127
127
128
129
125
126
129
127
125
127
128
128
128
126
128
126
129
129
124
129
124
128
128
123
128
131
128
127
128
126
128
128
126
127
128
125
129
129
123
132
126
127
130
126
128
127
126
126
128
128
128
128
128
128
126
127
126
127
124
131
124
129
128
127
133
129
126
127
125
128
126
128
126
129
129
127
127
124
129
127
126
125
127
128
128
125
128
129
125
127
127
132
121
129
126
129
125
127
127
127
129
124
130
126
128
127
128
129
129
123
131
127
127
127
129
125
130
127
126
128
123
126
129
123
127
129
124
127
129
126
129
124
128
129
124
125
127
129
126
126
126
130
125
129
126
127
123
130
125
125
129
123
129
131
124
127
131
128
127
126
129
129
121
130
128
123
131
126
125
129
126
128
131
122
127
128
126
129
125
127
128
130
123
130
127
123
131
126
130
127
128
125
130
124
131
124
128
129
126
128
127
128
126
129
127
128
127
129
126
128
125
129
128
126
130
130
123
129
128
125
126
129
126
125
129
127
128
127
125
128
130
126
126
129
126
128
128
127
128
129
125
126
130
124
127
129
128
126
127
126
129
126
125
129
127
126
126
125
129
126
127
129
128
126
131
123
127
130
125
126
127
126
127
130
124
130
92
89
112
131
140
153
184
170
222
190
141
111
97
93
92
87
93
87
102
61
27
75
87
76
135
132
190
162
157
170
129
119
186
197
120
136
166
175
224
127
141
144
136
126
119
133
135
171
153
121
71
91
145
133
97
115
86
90
76
50
99
110
103
91
96
103
99
84
78
56
77
94
119
123
164
165
180
185
190
189
198
205
211
232
175
164
188
188
177
185
176
165
162
122
105
98
97
79
92
104
85
84
65
50
80
54
79
66
52
45
88
115
117
112
94
106
115
132
135
161
161
175
158
153
172
163
179
183
183
180
186
179
158
139
174
142
136
121
138
146
138
108
96
82
79
73
54
65
92
88
72
75
74
46
49
61
90
101
118
125
149
147
149
145
171
168
160
179
169
188
205
240
209
194
165
159
184
163
190
197
164
124
108
95
69
89
77
67
67
60
53
99
111
93
78
102
70
96
121
137
116
128
132
109
109
116
134
114
117
127
139
163
174
168
201
192
171
181
180
178
212
198
176
168
161
136
136
165
127
145
125
112
91
86
82
77
39
63
48
61
66
76
67
70
52
84
74
89
96
114
137
121
132
149
155
183
155
159
160
150
205
157
180
141
164
150
153
137
148
132
152
159
131
151
161
141
138
145
64
117
117
121
141
98
65
71
70
110
122
92
115
97
96
92
96
101
82
61
123
108
118
124
138
139
144
159
163
171
176
181
175
181
169
157
173
155
143
149
146
139
146
152
146
133
130
135
133
107
68
80
89
99
96
83
100
94
100
99
113
100
124
129
100
124
108
129
131
131
111
136
147
137
145
151
152
167
153
148
148
142
132
147
123
148
147
157
139
153
135
160
119
115
136
131
109
133
125
92
108
86
88
83
104
107
81
104
91
115
114
93
116
123
117
154
140
138
157
153
165
147
166
136
157
154
143
144
152
144
159
144
118
101
129
124
108
113
103
117
85
112
101
98
93
127
140
124
131
130
160
135
126
156
137
125
135
118
137
121
131
114
126
109
124
102
113
139
119
142
129
136
154
131
134
159
142
119
148
153
133
142
144
136
132
124
137
127
108
105
111
118
84
77
102
87
92
107
114
106
130
144
126
116
147
122
144
144
141
139
145
131
155
154
157
150
139
139
143
171
141
105
130
126
118
118
130
103
107
117
95
114
118
91
114
104
98
122
108
108
108
116
122
106
132
123
132
134
138
141
142
159
144
141
168
175
165
149
148
149
148
150
123
145
142
139
118
126
120
124
118
113
120
117
113
111
109
87
98
111
94
87
117
83
106
100
99
99
114
129
125
141
121
129
142
133
132
139
155
156
149
167
179
143
170
157
148
163
148
147
153
135
148
138
120
139
142
137
128
136
122
123
110
108
117
103
110
96
102
112
101
104
100
112
92
110
111
100
105
114
108
121
119
107
140
138
143
132
144
147
143
148
141
153
161
144
146
133
159
151
142
166
140
153
139
139
131
137
131
128
118
120
129
104
108
113
106
99
105
98
107
103
86
104
105
110
107
108
115
119
135
121
137
141
127
144
139
144
131
146
124
155
134
133
137
153
136
135
137
126
137
123
143
146
131
135
141
130
131
142
131
114
136
111
136
125
122
123
107
98
112
122
115
115
108
110
119
117
126
129
124
140
120
129
145
132
133
140
140
147
146
143
151
136
139
134
127
127
129
118
113
116
114
101
120
116
110
124
105
119
101
124
117
122
115
115
123
124
142
139
136
141
153
143
151
151
137
144
134
135
135
136
122
129
139
127
131
122
132
120
121
128
123
122
121
124
113
115
121
114
116
115
111
119
117
111
111
116
118
121
116
116
119
110
126
124
121
127
123
140
136
134
139
145
142
145
147
152
157
152
155
162
145
142
140
134
136
135
125
137
120
131
116
113
108
113
117
107
109
111
110
120
115
120
115
119
115
116
123
119
117
130
140
136
136
135
141
135
143
137
137
143
133
131
135
129
128
122
122
121
119
122
136
135
125
121
138
129
122
125
121
126
131
121
125
119
126
121
122
113
119
126
125
128
121
130
134
126
137
136
147
135
123
134
145
142
135
154
135
138
145
135
139
123
124
124
121
117
105
111
104
110
110
113
111
105
114
114
109
114
114
116
121
121
126
127
132
135
136
143
141
143
141
137
153
148
139
144
132
137
139
135
134
128
134
140
140
138
134
134
127
127
125
123
124
119
122
115
112
108
106
116
116
110
119
123
108
120
119
126
119
119
114
134
130
137
138
143
142
131
135
133
137
131
139
139
128
126
131
127
118
126
120
131
135
124
124
130
126
125
131
120
117
119
123
121
125
119
116
126
114
116
122
126
126
125
139
127
133
133
132
136
130
131
126
133
134
126
134
145
137
128
140
131
136
135
140
137
121
129
131
125
116
125
109
126
106
118
122
113
127
123
109
118
115
117
122
117
128
121
127
120
122
125
135
128
133
135
143
139
142
142
136
133
142
144
132
145
132
131
131
128
137
134
129
131
127
133
134
123
132
114
128
115
131
116
116
117
118
111
114
107
108
122
110
111
121
117
120
138
123
123
128
122
132
140
133
141
133
134
140
129
136
132
140
128
133
133
139
128
127
130
127
132
130
127
120
123
122
127
125
124
126
127
124
116
124
119
128
120
123
119
124
121
125
122
121
123
123
137
137
124
133
129
136
131
134
135
132
131
138
139
132
138
133
130
137
130
131
130
133
128
119
132
120
120
120
120
118
124
122
126
125
124
128
121
124
121
125
116
121
117
135
131
120
123
127
120
126
135
130
129
130
131
129
128
129
131
128
123
125
128
124
124
129
124
136
128
128
125
124
126
130
129
129
130
132
132
125
129
126
128
131
132
121
127
132
126
127
126
128
123
122
125
123
115
116
128
123
118
124
126
123
132
130
131
128
134
131
136
131
132
133
135
132
144
131
132
134
132
126
133
133
131
125
126
135
129
126
118
129
124
121
120
115
121
121
121
123
127
119
125
130
130
123
135
133
121
133
131
125
125
141
126
130
140
132
130
130
132
130
133
127
128
120
130
125
128
124
122
136
137
128
127
126
126
125
129
124
124
127
121
122
129
119
123
123
124
121
122
121
118
124
117
120
125
123
121
124
125
118
128
133
123
126
132
133
135
130
132
132
138
133
132
127
141
132
131
132
126
131
127
127
125
127
125
128
123
120
127
129
120
128
120
125
123
130
123
123
126
121
132
130
129
130
136
124
126
126
130
122
124
132
128
124
133
124
132
130
122
131
131
129
131
129
118
127
119
128
125
123
123
126
120
125
132
129
127
124
130
131
128
127
130
126
126
136
127
132
133
125
134
130
133
128
131
126
131
129
124
130
126
124
119
119
124
129
132
117
127
124
124
126
123
128
120
124
121
125
129
128
127
125
131
124
128
129
126
123
126
122
132
131
123
127
125
132
125
130
129
131
132
132
134
129
133
130
130
131
126
135
125
132
129
131
124
130
127
127
128
121
127
120
120
127
122
122
123
124
119
124
130
121
129
122
122
126
127
130
126
125
125
128
133
132
135
126
136
127
131
134
128
130
135
125
134
131
135
132
135
127
131
128
133
126
131
126
124
129
122
127
122
125
122
122
123
122
125
122
125
123
121
124
123
124
123
124
122
125
122
127
124
123
126
125
125
126
130
126
131
129
132
131
133
127
135
129
127
129
132
128
129
130
126
134
127
127
129
124
126
130
126
128
123
125
126
121
124
123
126
126
121
127
125
124
128
123
127
125
123
125
125
127
128
131
125
130
126
134
130
128
134
132
133
133
130
129
131
128
129
128
131
129
127
127
125
127
127
126
126
125
123
120
129
120
124
124
119
127
125
124
127
125
123
129
128
127
133
131
131
130
134
134
130
134
128
132
128
131
132
128
130
124
130
127
130
123
127
124
122
127
123
126
126
126
123
128
126
125
128
124
126
122
126
127
125
125
125
127
124
126
125
129
122
126
128
127
127
127
132
127
129
130
132
129
131
130
133
135
126
133
129
134
131
132
131
128
128
125
125
123
120
123
120
122
123
124
124
123
121
125
120
126
126
126
126
128
128
128
126
129
129
126
126
128
128
128
128
130
122
127
128
129
127
130
130
127
131
129
128
131
129
131
132
127
133
126
131
129
127
127
127
125
125
126
125
121
127
128
124
124
127
125
124
128
127
130
132
127
130
131
124
128
125
128
132
130
126
130
129
128
128
128
125
124
127
123
128
124
128
128
125
126
125
128
127
125
127
130
123
130
126
126
124
125
128
126
128
130
127
127
128
126
129
130
127
127
129
128
128
126
130
126
125
124
121
127
126
129
128
128
126
129
125
126
128
126
127
126
126
124
127
122
125
124
126
126
126
129
129
128
126
126
127
128
129
129
127
129
133
130
131
131
132
131
129
131
128
130
127
126
127
126
127
126
129
125
127
129
126
126
127
128
125
128
126
124
127
126
125
127
126
125
128
125
127
128
129
131
125
131
128
129
132
126
130
127
128
129
130
129
128
134
127
129
127
129
123
126
124
126
128
125
128
124
126
121
127
121
124
124
127
124
127
126
123
127
125
124
128
128
129
128
128
129
128
131
127
130
130
126
131
124
129
127
124
128
126
130
130
127
131
127
126
126
128
126
124
128
125
126
124
126
127
128
125
127
125
128
128
128
126
129
127
128
127
126
131
127
129
127
129
128
126
130
124
131
128
129
130
127
128
127
129
130
128
127
128
129
126
128
125
128
127
126
126
124
125
126
129
125
125
129
126
128
128
127
126
127
128
131
127
131
127
127
130
126
129
124
127
124
126
127
127
128
126
129
125
127
124
123
127
127
126
127
128
127
128
125
131
129
125
125
127
127
124
129
127
126
125
128
126
125
128
125
128
128
125
130
126
125
129
126
128
127
127
128
129
124
128
126
126
128
125
130
126
128
129
130
128
126
127
124
129
126
128
129
129
130
131
125
127
130
128
132
125
130
127
128
130
126
126
128
128
125
127
125
128
126
126
128
128
129
127
128
124
129
125
128
125
130
129
128
129
126
126
126
127
126
130
126
127
131
125
132
128
126
127
129
126
125
127
127
128
128
127
130
126
125
127
121
125
127
125
127
123
128
127
132
128
129
127
127
127
128
128
128
127
123
128
125
125
124
125
123
127
124
126
126
125
125
126
129
127
126
131
130
132
127
130
129
129
129
128
127
128
129
132
126
130
126
130
127
126
129
127
127
123
130
129
126
127
126
125
124
127
128
128
129
129
127
128
126
128
124
125
126
130
127
130
132
127
128
126
128
126
127
128
127
131
131
124
129
133
126
126
130
130
126
127
127
124
123
127
127
125
126
128
126
125
123
128
124
125
127
129
129
127
129
129
125
128
129
126
129
128
128
128
127
127
129
127
130
129
127
128
126
126
126
124
126
124
125
126
125
125
129
126
123
127
129
124
128
126
129
124
125
127
127
125
125
128
128
127
128
127
127
128
127
128
130
127
129
127
127
127
129
128
130
125
132
134
132
127
128
128
124
125
128
125
124
128
128
130
126
125
126
127
125
126
132
128
130
127
128
128
128
126
125
124
129
127
127
132
126
128
129
127
126
127
127
127
127
127
127
130
127
128
127
125
129
126
127
126
128
126
126
128
126
125
130
125
127
127
125
126
126
129
124
126
126
125
128
129
127
128
126
127
127
126
127
126
126
126
124
128
127
125
129
128
125
127
130
128
128
130
131
130
125
129
127
127
126
127
128
130
128
127
128
127
128
129
127
130
126
128
130
129
127
132
134
123
120
133
116
115
135
126
124
136
123
131
132
129
134
117
119
125
129
139
119
123
126
138
145
116
122
122
132
141
131
114
127
125
138
139
108
116
125
127
127
132
116
132
136
143
138
120
96
116
134
119
124
117
128
141
119
115
104
129
135
135
137
139
134
137
122
135
139
132
126
117
136
134
115
108
123
138
124
123
135
127
129
123
153
127
120
143
133
121
129
137
125
101
122
144
124
114
113
136
140
113
120
128
133
121
120
142
129
110
124
126
142
101
110
135
133
119
120
143
139
105
125
154
118
99
156
137
114
140
127
104
125
124
123
138
151
136
137
162
163
118
123
135
102
137
139
110
133
112
107
147
135
80
126
127
125
136
119
112
134
137
137
127
117
113
109
126
155
107
122
149
122
120
130
128
106
137
153
131
132
140
131
136
144
125
125
142
135
135
133
128
115
106
126
117
118
108
126
126
113
121
128
110
121
129
134
115
110
113
126
145
116
127
135
118
117
127
124
131
153
121
152
167
108
121
137
130
130
152
153
138
136
145
143
122
119
129
134
137
117
132
132
111
121
141
119
93
100
115
134
120
112
117
100
123
138
116
96
112
121
131
135
125
133
130
127
140
130
118
124
143
117
146
145
134
124
132
123
149
148
171
128
131
114
120
150
134
119
127
142
150
129
100
115
131
124
123
95
106
113
120
128
129
101
121
133
119
111
128
121
134
144
146
120
118
112
103
121
134
118
122
140
141
142
157
128
109
147
123
120
141
137
142
173
147
143
137
123
138
126
129
128
113
138
123
105
112
127
113
91
101
103
104
143
154
141
116
136
134
106
132
118
130
146
143
131
109
140
163
132
95
109
133
153
165
137
110
127
161
125
142
115
79
130
147
119
146
113
105
136
118
136
116
116
122
137
130
125
124
97
101
123
113
109
116
129
140
128
124
115
101
110
122
131
111
93
113
141
130
122
115
139
150
134
101
126
151
129
164
151
151
175
175
163
122
114
113
122
152
110
114
144
148
132
121
108
120
142
140
104
115
135
139
127
94
64
106
135
133
113
112
132
150
148
131
130
140
159
145
149
123
102
163
150
137
162
131
114
128
154
143
156
130
107
143
144
119
138
140
103
97
124
135
123
104
126
138
123
102
120
130
111
127
133
119
126
121
93
107
110
121
121
101
146
143
107
116
116
105
114
126
144
101
100
131
129
99
103
147
118
123
131
122
95
129
148
146
150
125
131
135
143
147
103
110
138
131
128
108
123
134
122
149
129
77
134
160
147
110
108
122
106
77
110
120
98
117
148
138
114
140
144
149
131
121
137
127
153
136
147
146
128
169
153
114
135
151
130
152
156
131
126
153
152
123
143
139
123
127
130
129
116
123
142
139
124
114
133
109
121
140
118
111
136
130
123
119
115
118
131
114
132
125
111
130
138
98
107
148
152
98
104
104
120
131
117
130
136
103
124
148
111
128
164
148
129
158
122
125
150
163
119
105
106
141
126
107
122
123
118
140
110
98
128
155
116
108
116
119
94
85
110
103
109
128
127
121
107
131
142
128
112
150
142
115
118
152
131
129
165
147
117
130
142
159
138
142
160
152
134
154
141
124
142
146
132
133
125
120
128
142
135
103
136
150
106
104
113
151
121
116
157
123
125
111
121
105
100
134
122
125
119
118
141
109
96
128
143
99
104
112
98
116
129
122
131
130
109
111
140
112
137
156
133
146
138
120
148
130
116
111
116
115
146
108
123
138
121
123
122
101
134
147
114
128
132
99
97
125
104
77
124
130
116
142
112
118
136
140
124
150
137
111
147
154
139
131
148
137
135
143
134
150
141
173
150
139
150
147
134
132
133
139
159
118
113
130
131
118
134
114
128
152
115
107
121
162
103
117
159
120
125
124
126
100
105
146
109
126
125
123
128
90
108
134
134
99
109
106
118
115
121
119
137
98
127
137
123
150
143
138
146
117
147
136
157
127
114
129
109
112
139
129
94
117
151
131
95
122
139
128
124
129
111
107
122
112
93
89
123
125
121
129
116
107
137
144
123
141
122
114
169
140
140
146
142
143
161
148
115
131
159
164
146
139
156
148
133
138
139
142
138
133
117
135
128
123
118
137
139
124
105
111
126
155
107
117
139
121
136
136
110
94
133
141
105
129
130
120
101
114
149
109
90
117
103
121
129
112
113
128
130
108
114
123
138
168
117
157
149
116
145
139
147
119
133
132
94
124
137
109
100
134
137
132
112
111
130
133
138
115
119
131
110
113
102
86
111
135
121
124
137
106
115
147
124
130
100
132
159
142
140
146
118
151
166
138
118
128
148
162
145
134
158
148
128
135
136
143
140
124
134
138
130
118
117
124
140
129
98
115
132
138
130
130
130
132
143
141
118
93
103
145
121
114
134
116
132
114
130
129
101
98
99
100
128
116
106
131
130
124
110
113
121
147
157
130
146
141
136
141
144
146
125
147
129
98
125
124
107
115
141
126
120
102
115
133
126
116
110
125
125
124
102
101
95
102
128
137
120
130
119
116
157
142
103
120
150
151
144
160
124
126
158
153
130
124
151
163
140
129
164
145
125
139
134
133
143
144
129
135
130
117
129
147
132
97
105
111
125
127
138
119
125
144
151
135
104
101
111
130
109
138
134
117
134
133
115
136
108
99
102
109
141
112
104
136
131
107
106
131
127
125
159
130
126
149
138
133
133
138
130
146
120
96
114
110
116
136
108
127
134
104
109
136
127
97
119
138
118
110
111
107
92
91
130
133
123
131
119
145
146
118
120
150
147
148
148
129
142
156
160
143
124
148
145
155
152
137
138
148
139
116
125
146
127
122
148
118
89
143
131
126
131
111
115
119
120
114
134
118
129
148
143
138
125
114
103
113
133
128
139
142
113
119
142
129
101
107
99
91
130
123
104
120
128
119
105
126
123
96
148
182
160
142
150
149
126
140
131
121
106
82
104
121
83
98
138
116
111
92
103
122
125
128
120
138
152
153
143
116
116
105
129
145
159
140
133
135
153
146
116
124
123
139
148
140
120
110
155
152
138
115
131
143
141
148
147
147
143
130
136
126
124
141
134
127
131
100
107
123
137
102
95
128
116
109
127
138
104
128
151
131
138
117
107
125
111
105
119
140
138
107
115
136
145
127
117
116
114
143
149
135
133
140
119
124
142
118
112
148
167
136
112
140
120
128
133
115
103
105
104
100
104
122
123
120
143
127
114
133
132
107
131
144
135
149
146
122
128
114
112
128
153
139
101
131
140
125
140
124
115
137
166
146
118
103
142
137
128
123
125
130
143
140
147
118
140
135
118
125
148
116
120
143
123
81
127
131
117
92
109
135
130
106
145
147
111
133
158
141
130
118
138
95
104
136
123
148
135
121
153
146
123
106
113
96
145
128
117
157
118
128
133
112
101
112
145
146
143
132
136
133
131
134
136
118
110
117
121
98
127
148
104
106
137
137
142
121
109
111
112
137
151
159
136
133
132
104
136
139
128
120
144
137
144
130
112
109
120
142
138
133
117
133
135
136
137
99
129
126
136
126
131
153
138
134
145
126
118
125
148
139
101
87
122
156
126
75
119
124
118
124
126
108
98
142
160
140
137
123
128
114
96
118
131
126
133
112
156
132
110
121
114
112
98
140
144
122
122
121
142
141
129
111
105
150
144
112
135
152
146
136
154
127
126
134
119
110
123
136
102
116
126
125
150
118
136
117
103
114
131
150
168
122
141
135
111
143
139
131
144
123
128
137
133
134
124
143
137
137
136
121
119
116
118
109
95
108
108
130
103
114
157
114
102
156
136
116
150
142
96
119
145
137
129
110
127
137
130
122
124
107
123
155
141
126
151
154
116
113
111
121
131
139
139
124
139
149
113
127
105
84
117
125
135
129
105
140
151
129
109
118
115
136
132
124
131
144
151
148
161
128
114
126
109
116
123
119
99
113
120
110
135
126
121
119
111
111
131
139
169
148
141
143
122
138
150
123
133
127
114
157
154
103
115
131
119
116
128
120
112
106
127
87
87
141
130
113
118
133
118
129
155
139
129
133
143
141
107
114
154
151
134
118
130
135
147
135
127
106
129
144
144
153
164
132
140
132
112
99
132
132
134
136
114
140
134
123
100
101
96
118
162
123
86
145
146
118
112
119
127
128
125
129
127
132
148
154
140
114
108
137
121
110
121
103
102
117
101
98
116
135
129
101
110
110
120
139
155
127
140
151
139
125
138
137
132
127
125
162
161
126
121
125
114
114
139
130
111
117
94
116
102
91
139
117
91
119
115
112
140
145
140
130
140
133
123
128
125
149
167
109
125
142
130
152
157
131
119
119
146
142
160
158
128
141
139
120
127
131
133
145
129
120
155
137
118
121
103
104
121
157
123
116
154
144
114
110
129
116
127
143
123
118
128
160
147
143
129
92
101
119
115
119
117
112
139
96
133
120
90
108
101
98
109
142
169
137
134
162
145
113
131
142
121
122
149
159
145
147
136
106
99
125
127
103
117
137
109
107
114
102
124
115
105
120
113
110
144
145
148
135
146
116
100
133
136
130
160
115
106
135
142
151
150
123
133
108
131
147
157
141
115
145
142
109
124
137
132
128
155
126
122
154
135
116
106
119
131
121
126
137
142
132
118
124
98
102
144
110
125
131
158
143
156
144
101
103
126
113
126
110
126
135
95
106
103
121
114
101
101
102
113
138
170
140
128
160
147
131
135
134
123
125
157
151
130
148
129
112
113
120
122
119
117
134
114
106
110
109
118
110
126
122
93
134
137
129
142
135
124
114
126
131
125
142
153
130
108
126
137
152
145
119
133
113
133
164
152
132
114
160
129
106
146
122
120
145
150
140
107
163
113
109
130
126
115
133
143
120
125
130
125
91
102
132
143
114
113
131
146
145
150
146
115
118
129
95
118
127
121
137
100
99
105
128
133
103
99
91
116
149
149
149
119
150
166
138
130
127
103
138
151
133
129
134
134
118
118
111
106
130
122
114
126
116
110
115
125
121
128
112
103
139
116
114
153
135
128
142
135
118
117
144
152
133
126
115
125
152
152
120
130
113
118
161
144
142
124
142
136
135
137
126
116
144
139
129
128
130
152
129
108
127
124
129
142
136
126
116
140
110
88
116
126
131
125
104
119
137
146
157
121
131
145
106
102
123
127
123
124
102
95
98
130
141
106
86
93
126
153
138
139
125
141
167
151
127
119
129
151
141
137
142
122
143
136
122
116
106
137
129
109
130
116
111
116
117
120
108
102
134
118
117
132
137
132
136
122
112
121
135
150
128
124
106
120
137
150
135
111
100
151
149
136
153
135
119
138
149
139
123
129
128
141
142
129
131
150
144
117
127
118
136
154
128
123
134
137
101
105
121
114
124
125
123
101
129
155
140
129
138
128
109
105
125
137
121
109
114
89
89
121
147
100
88
98
122
148
146
143
115
120
162
169
128
114
141
136
128
153
131
118
145
147
128
124
113
137
120
107
117
120
120
90
124
112
100
138
131
111
116
140
145
135
149
135
110
114
139
153
140
115
111
113
142
159
131
111
107
146
139
129
166
139
108
141
138
142
138
120
134
122
131
144
132
136
141
140
127
116
137
138
119
128
127
137
106
106
120
111
128
119
120
103
111
142
132
148
151
123
111
125
125
119
123
119
107
96
98
117
145
120
96
100
106
157
167
149
130
116
142
160
143
117
125
120
114
141
135
114
126
151
147
116
122
129
112
125
123
106
119
111
108
125
123
139
160
123
106
135
156
131
154
157
135
117
122
154
140
135
121
107
118
137
138
109
110
109
104
114
153
136
115
121
135
149
134
125
108
125
140
119
122
127
139
152
159
131
93
124
161
142
118
141
131
111
123
129
118
102
122
128
114
98
122
151
141
127
130
99
139
122
131
107
125
107
115
143
136
151
117
112
95
110
156
150
118
112
134
138
133
135
114
117
134
126
148
140
122
169
141
131
120
118
131
107
123
125
119
109
110
123
123
141
136
114
110
124
127
148
145
121
146
132
118
141
147
133
113
145
127
104
125
150
132
125
104
105
141
150
123
134
115
111
141
164
114
109
121
114
144
148
118
136
148
141
138
128
121
124
127
141
111
110
118
145
149
131
121
141
117
110
124
128
121
129
114
117
126
152
141
93
114
121
86
140
151
101
102
119
129
121
122
118
129
130
126
119
111
113
144
132
125
103
133
152
142
164
148
110
131
129
113
126
141
141
162
126
117
117
139
151
149
133
114
104
136
138
131
165
146
101
115
136
167
238
180
158
96
58
72
66
82
77
77
74
58
77
78
112
106
91
121
124
107
104
134
112
102
115
142
149
151
162
152
119
142
154
159
160
174
164
140
146
182
204
173
181
155
147
177
208
180
153
169
173
152
153
132
159
172
161
145
115
119
135
150
143
109
107
117
130
114
107
104
99
109
110
91
77
88
105
99
89
80
82
80
82
88
81
57
73
49
42
46
67
61
32
48
60
74
85
65
53
62
118
108
90
118
93
97
131
137
126
159
164
154
145
149
182
193
184
172
188
168
190
195
163
180
194
189
180
181
181
202
190
175
186
176
207
204
222
190
191
235
212
181
184
186
177
186
154
158
155
172
184
150
104
110
117
120
116
100
82
104
123
127
83
54
86
100
80
78
71
83
107
112
99
58
72
97
79
71
72
73
75
88
64
73
112
94
86
90
69
58
74
90
89
90
71
75
105
112
71
59
91
98
97
107
118
62
106
116
119
113
102
117
115
114
101
80
86
105
121
106
74
94
136
140
148
145
125
142
164
153
145
173
179
148
168
165
165
183
207
198
186
188
196
205
204
194
212
200
189
217
221
214
217
233
206
184
191
210
215
165
173
220
191
175
191
179
156
177
184
143
125
162
141
134
132
143
131
114
116
107
93
81
100
92
61
83
123
87
61
54
90
67
70
76
75
65
52
80
57
62
71
61
85
74
69
51
58
58
72
69
83
73
88
61
68
122
99
116
114
91
102
106
88
98
98
102
110
102
112
116
129
161
135
134
143
150
135
146
127
104
143
97
105
156
128
139
167
172
143
185
166
144
175
154
137
160
160
142
177
167
140
162
164
139
155
158
147
160
147
150
185
146
135
149
138
155
141
120
132
139
151
133
131
150
99
116
142
127
135
138
134
125
123
129
139
115
134
108
113
118
134
147
128
100
103
122
100
113
121
89
114
142
120
99
112
117
125
100
117
97
118
127
114
136
122
119
126
128
138
125
106
107
105
95
111
112
107
114
127
134
134
146
149
140
128
128
107
121
117
94
119
131
131
114
129
160
137
175
156
137
154
137
156
127
145
155
143
151
153
140
145
149
142
143
161
162
119
150
165
127
126
156
156
143
134
117
151
142
136
139
106
110
141
139
126
113
122
105
124
128
113
142
132
87
111
125
118
100
141
144
117
122
112
113
107
84
101
110
109
123
114
95
110
111
109
91
91
109
123
126
108
111
112
117
108
124
120
110
88
112
115
92
110
108
104
116
124
104
136
133
143
134
99
121
119
102
96
116
116
114
132
122
106
151
148
155
144
126
133
117
138
134
132
147
147
146
143
139
135
150
126
132
152
112
147
159
134
127
136
167
136
138
130
150
150
152
150
144
102
142
150
140
118
108
138
131
128
138
128
147
140
111
128
140
134
120
156
154
132
153
161
113
108
101
113
124
123
124
136
138
131
125
134
105
108
139
139
114
114
134
134
134
115
125
133
130
105
111
118
112
128
130
115
100
135
133
137
157
128
124
126
140
96
83
126
107
106
124
115
114
105
157
149
146
142
127
128
123
124
126
112
138
138
147
139
129
140
123
125
125
117
127
115
138
147
119
116
112
142
124
120
126
120
145
154
129
128
115
133
140
139
114
96
125
140
121
124
129
114
121
138
126
119
127
115
138
157
139
143
148
120
104
114
125
117
105
137
142
120
131
129
134
101
117
136
125
119
115
130
129
115
115
120
123
117
119
119
96
113
136
109
93
130
137
149
148
124
131
137
122
102
68
126
113
101
113
122
117
100
160
165
132
149
143
118
131
130
127
125
137
148
151
146
148
149
128
121
132
139
140
133
134
145
128
137
116
128
125
128
143
131
131
141
142
141
108
122
142
130
122
111
130
133
127
137
128
121
136
120
140
126
116
119
131
145
156
148
144
127
122
103
110
119
104
127
139
145
120
136
142
100
129
131
121
129
123
149
132
118
117
118
123
127
122
97
90
131
126
98
77
133
129
131
153
107
111
143
138
86
71
116
126
97
109
111
113
100
137
167
132
142
159
124
125
119
143
143
115
155
152
150
146
169
121
101
146
136
129
149
129
130
138
137
105
117
127
136
152
135
108
144
144
146
119
98
135
134
134
132
105
120
134
128
126
127
123
115
130
134
113
113
122
139
155
144
139
146
122
106
120
121
108
124
145
139
125
140
128
115
126
145
126
118
127
126
148
143
110
117
115
132
143
121
96
96
139
116
104
103
120
140
144
139
120
107
156
130
82
96
122
120
100
111
109
112
95
130
159
137
139
163
134
131
114
135
149
116
130
154
144
142
164
139
100
142
148
135
141
135
126
144
135
106
113
122
139
146
132
113
126
152
146
110
96
128
134
130
98
113
147
133
121
126
120
119
134
130
113
103
120
128
145
148
122
150
137
106
132
100
97
127
145
137
123
145
146
138
127
113
128
132
135
134
141
155
127
127
127
123
149
131
106
102
120
119
119
103
108
140
148
122
126
135
134
101
99
106
98
124
96
94
110
113
93
113
130
144
133
158
138
121
119
127
142
122
110
139
151
140
168
134
106
145
156
150
159
139
121
166
121
92
126
141
155
134
117
114
134
157
132
93
113
132
141
139
107
108
129
124
129
119
118
124
112
145
129
98
118
132
126
155
143
129
132
137
126
92
113
128
124
145
121
135
145
136
125
105
124
141
128
135
131
154
147
118
130
131
142
149
128
106
92
125
129
105
92
113
135
131
123
130
116
103
109
112
105
117
86
101
120
115
100
103
118
138
151
160
138
140
128
123
161
127
107
141
149
151
159
129
118
137
155
156
160
136
120
159
175
109
94
131
139
163
139
116
113
131
160
121
89
109
118
145
138
103
108
123
140
129
114
121
109
106
142
120
100
108
127
132
165
137
128
146
131
120
97
110
128
118
120
140
135
137
143
126
112
127
142
134
139
132
145
145
118
125
127
138
144
131
113
92
121
129
118
93
114
140
137
128
133
118
106
118
118
125
87
107
131
109
110
97
105
127
150
149
131
140
132
122
151
136
100
126
154
156
150
135
120
123
148
172
152
129
133
157
160
128
99
123
131
166
152
119
119
126
142
130
91
93
116
133
140
120
100
115
142
133
118
121
105
117
141
134
108
106
120
130
166
149
112
157
141
100
110
115
120
116
120
148
137
134
144
128
111
112
142
125
135
138
140
139
126
120
115
129
155
112
107
99
130
129
100
104
129
137
126
134
126
99
120
123
122
123
104
116
124
108
127
108
90
117
146
141
135
150
130
123
131
149
121
100
142
161
147
139
130
120
134
155
160
121
128
156
150
139
118
121
124
153
175
124
129
125
135
140
108
100
112
115
149
124
115
101
142
140
118
121
113
115
130
131
126
104
116
119
144
166
130
127
153
124
93
132
130
105
120
148
148
120
134
132
105
105
132
130
117
136
154
132
120
131
118
115
149
152
103
107
122
115
120
123
119
115
118
145
133
113
105
127
124
104
122
132
110
117
106
130
108
93
114
129
134
118
145
150
103
122
152
130
109
134
172
149
130
139
113
129
141
145
129
127
144
140
135
120
135
123
138
176
148
136
135
132
112
118
130
97
109
137
125
114
136
127
121
150
122
100
134
128
122
122
98
124
128
154
153
120
129
135
103
104
130
119
117
147
152
130
131
128
122
103
111
135
114
123
147
146
120
113
139
126
125
148
133
112
127
137
138
114
113
119
122
125
105
129
120
124
126
108
121
125
116
131
117
102
118
118
123
109
118
121
131
136
138
114
115
132
137
129
136
158
138
141
141
126
117
132
149
121
137
140
120
126
145
143
124
137
157
143
144
136
114
120
105
120
128
116
102
135
153
130
129
123
130
137
129
137
126
102
119
145
132
109
135
143
133
124
112
113
134
126
121
139
145
134
139
126
100
107
133
132
133
112
130
150
123
108
130
110
125
142
151
115
116
125
120
120
111
104
127
124
122
115
109
132
130
128
127
122
136
127
113
112
80
103
132
114
119
110
120
126
125
129
127
118
129
136
157
155
138
144
116
110
138
151
145
161
146
134
131
124
131
134
148
145
128
147
126
128
135
121
119
120
109
113
129
132
125
132
136
132
137
124
126
132
127
116
103
103
136
128
128
114
115
130
108
117
138
107
111
145
142
129
139
112
103
122
135
143
125
130
152
144
131
129
120
132
143
133
144
136
133
126
127
120
111
112
117
122
125
113
128
135
121
123
127
124
120
120
111
112
112
107
98
130
120
107
115
108
122
97
128
145
115
132
146
136
144
141
130
102
117
151
140
139
147
149
137
128
137
141
130
144
156
143
134
141
143
140
138
122
116
108
115
131
126
135
132
126
130
131
128
125
123
130
120
121
125
117
116
132
128
112
93
116
130
124
128
128
114
122
128
130
119
111
118
132
135
116
123
140
137
134
134
127
124
126
144
147
146
143
128
129
126
123
110
110
114
114
127
126
135
128
132
134
122
109
118
126
118
123
120
112
107
102
115
107
105
110
121
129
135
127
129
133
137
135
122
112
131
140
141
146
141
139
144
147
140
140
137
138
142
146
153
137
136
139
142
130
108
112
126
122
130
130
131
127
133
133
130
126
123
126
125
131
129
115
109
119
127
120
107
105
122
122
125
124
118
117
116
122
115
115
123
124
126
127
128
132
132
130
134
128
130
140
142
148
146
146
138
132
137
127
120
122
123
125
123
121
133
131
129
130
118
112
124
121
110
111
113
114
108
114
119
114
108
108
120
120
122
122
128
126
126
131
123
118
128
136
130
133
138
140
140
137
140
139
141
142
146
140
140
141
139
134
136
137
136
133
134
131
133
131
135
129
127
133
131
127
122
124
123
125
127
128
123
123
122
125
122
115
115
123
126
125
126
122
116
125
122
117
113
117
119
124
127
124
122
126
126
129
130
131
128
131
137
137
135
133
132
138
134
131
131
128
125
128
129
128
128
126
125
123
120
115
116
119
116
117
118
113
109
112
117
120
116
115
120
125
128
129
128
123
125
127
130
130
130
132
135
136
135
138
134
133
136
139
138
138
136
140
143
140
135
136
137
135
135
136
134
130
138
132
129
128
131
130
128
127
125
125
131
128
125
123
121
123
125
126
122
121
127
125
125
122
121
119
119
121
121
116
119
123
123
125
124
122
124
125
125
127
130
126
129
133
131
128
129
132
131
127
129
132
129
123
124
127
126
127
128
126
127
123
123
122
122
122
121
120
121
120
120
125
122
124
125
128
128
129
129
129
129
129
130
130
129
128
127
129
134
128
128
129
130
133
131
131
130
129
136
131
129
132
132
132
134
136
133
132
134
135
135
136
133
132
132
130
130
127
132
131
131
130
128
127
129
132
126
128
128
126
129
129
126
125
124
124
124
120
123
120
122
120
122
126
122
123
125
125
123
126
125
122
125
126
127
125
125
122
128
128
123
124
124
127
127
128
128
125
124
124
123
123
124
123
126
124
124
124
125
124
125
127
125
129
131
131
127
128
128
127
126
127
127
127
129
128
127
130
131
131
130
131
131
132
128
129
131
129
130
130
131
130
129
132
134
132
131
135
134
135
135
136
132
131
128
129
129
131
132
133
130
131
132
130
129
129
132
129
130
130
132
128
128
127
126
124
124
125
126
126
125
124
125
127
126
128
124
123
125
123
125
122
121
123
126
122
124
127
127
127
125
127
125
125
127
127
127
126
126
124
125
124
127
123
128
127
125
126
126
128
129
128
128
130
127
126
127
126
125
123
126
129
127
127
129
127
125
128
126
128
126
128
126
128
127
127
125
125
128
127
129
128
130
129
128
131
129
129
130
131
131
129
130
126
127
129
133
131
132
132
132
129
131
132
129
128
131
134
130
131
131
130
129
127
128
126
132
129
127
128
127
128
130
129
128
127
127
127
126
124
124
125
123
127
129
127
127
127
125
127
128
125
127
130
127
128
125
126
126
128
131
128
126
129
127
127
127
126
127
127
129
129
131
122
127
127
126
125
128
125
126
131
127
127
126
127
128
128
127
124
126
127
125
125
127
124
125
126
124
127
126
125
124
126
129
127
127
128
127
129
127
128
125
127
132
128
130
131
128
127
130
127
129
127
130
130
129
130
129
129
127
128
127
127
128
127
126
127
127
128
127
128
129
128
128
130
127
125
129
124
127
123
128
125
126
127
127
126
125
127
128
128
125
131
127
127
128
127
129
128
130
128
128
127
127
127
129
129
128
130
129
130
129
130
126
127
127
128
129
126
128
128
124
130
128
127
126
128
127
125
129
125
127
125
126
127
125
127
127
125
125
126
127
127
128
127
126
125
128
125
127
125
126
127
129
129
127
130
128
128
128
128
131
130
128
129
127
127
128
127
130
126
126
129
127
127
126
128
128
127
126
129
128
127
131
127
125
127
127
126
125
127
127
127
125
127
125
127
127
126
123
127
126
125
125
125
125
125
127
126
125
126
126
127
127
128
127
127
129
127
128
127
125
128
127
128
126
128
128
127
127
126
129
126
128
128
129
125
129
127
127
127
127
128
126
128
127
128
126
127
129
126
128
129
127
127
126
127
127
124
127
128
127
126
128
128
126
126
127
128
130
128
128
128
128
127
128
126
127
128
127
129
126
128
126
130
129
127
126
127
129
126
130
128
128
125
127
128
126
126
125
128
128
126
128
128
126
127
128
127
126
125
126
126
126
126
128
128
126
127
127
127
127
125
128
127
128
127
129
127
127
128
127
128
125
128
129
127
126
128
127
126
126
128
125
127
128
127
126
125
126
126
127
126
126
125
126
126
127
124
126
128
127
126
125
126
126
126
126
128
125
128
128
127
127
124
127
126
127
127
128
129
127
128
125
127
127
127
127
128
128
128
128
129
128
127
127
129
128
126
128
128
128
128
126
127
127
126
129
128
127
126
128
127
126
128
127
128
127
126
127
125
126
125
127
127
127
128
128
127
126
127
125
128
127
128
127
126
126
127
127
127
127
127
128
127
126
128
127
127
126
127
126
128
128
127
128
126
127
126
127
126
127
128
125
128
127
126
126
126
128
126
127
127
128
126
126
127
127
126
128
128
126
126
126
128
127
128
126
128
128
127
127
126
127
127
125
127
127
128
127
129
128
127
127
127
127
126
127
127
127
128
126
127
126
126
128
128
126
127
127
126
127
126
128
127
128
127
127
127
125
127
127
126
127
128
127
128
127
126
127
126
127
129
128
127
128
127
126
128
127
127
127
127
127
128
128
128
128
127
128
127
127
127
127
125
127
127
125
127
127
128
126
128
126
125
126
127
128
126
127
127
127
126
125
127
127
126
127
127
127
126
127
127
127
127
127
127
129
128
127
127
127
126
127
126
127
128
128
126
129
126
127
128
129
126
127
127
127
127
126
127
127
127
127
128
126
127
128
127
125
128
127
128
127
127
128
126
127
127
128
127
127
128
128
127
126
127
128
127
128
127
128
127
128
126
126
128
127
127
128
127
127
127
128
126
128
126
127
126
127
128
128
127
128
127
125
128
126
128
127
128
127
127
127
127
129
127
128
127
128
126
127
128
127
127
127
128
127
127
128
127
128
127
127
127
127
128
128
127
126
126
126
127
127
127
127
127
126
127
127
126
128
127
126
127
126
128
126
126
126
126
126
127
127
127
127
126
126
126
127
127
127
128
126
127
128
128
126
128
128
127
128
128
128
127
127
127
128
126
127
128
128
127
126
127
127
127
128
127
127
128
127
128
127
127
126
127
127
125
127
127
128
127
126
127
127
127
128
128
128
126
127
126
128
128
128
127
128
128
127
128
126
128
128
128
127
128
128
129
127
127
126
129
127
128
128
128
128
127
127
126
128
126
128
128
125
127
128
127
127
127
126
126
127
127
127
126
126
127
128
127
126
127
127
128
126
127
126
127
128
127
128
126
127
127
126
127
126
128
127
128
127
127
127
127
128
125
127
127
129
126
128
128
125
126
127
127
127
127
127
127
127
127
127
127
127
125
127
127
128
127
126
127
127
128
127
128
127
127
127
127
127
128
128
128
129
127
128
128
127
127
128
128
127
129
129
128
128
128
127
127
128
127
128
128
128
127
126
127
128
128
127
128
126
127
128
127
128
127
127
127
127
128
127
127
126
128
127
126
128
126
128
127
127
125
126
128
127
128
127
128
127
128
127
126
126
127
128
127
128
126
128
129
127
126
127
127
127
128
126
128
127
127
128
127
127
126
128
127
127
126
127
128
126
127
127
126
128
128
126
127
128
128
128
127
128
128
127
127
126
127
126
128
128
128
127
127
128
126
128
127
127
127
128
127
128
128
127
128
127
127
128
127
128
128
127
127
127
127
127
129
127
128
127
127
128
128
127
128
127
126
129
127
127
127
128
128
126
128
128
128
127
129
127
126
127
128
127
128
129
127
128
127
128
126
127
127
126
127
128
128
128
126
127
128
127
127
127
127
126
128
126
127
126
126
129
127
126
126
127
127
127
126
127
128
127
128
126
127
127
127
127
128
127
127
128
127
126
127
128
129
127
128
128
127
127
129
128
126
127
127
127
128
128
127
128
128
127
127
127
127
127
128
127
127
126
128
127
127
127
127
127
128
127
127
126
128
127
127
127
127
127
126
128
128
127
126
128
128
127
128
127
127
127
128
127
128
127
128
128
127
127
127
129
126
128
128
129
127
128
128
127
128
127
128
127
128
127
128
128
127
128
128
127
128
127
127
128
127
127
127
127
127
129
128
127
127
128
127
127
128
127
127
128
128
127
127
127
129
128
127
128
127
127
127
128
127
127
127
127
128
128
126
128
128
127
126
128
126
128
128
127
127
126
127
127
126
126
128
127
126
129
126
127
126
128
126
127
127
127
127
127
128
126
128
127
127
127
128
127
126
128
127
128
128
128
127
128
128
127
128
126
128
127
127
128
128
127
128
127
127
127
127
127
128
127
126
127
128
128
127
128
127
128
126
128
127
126
127
128
127
126
128
128
128
128
127
127
127
128
127
127
128
127
127
127
127
128
128
127
127
128
127
128
128
127
127
128
127
128
128
127
128
128
128
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
126
127
126
127
127
127
127
127
126
126
128
127
127
128
127
127
126
127
127
127
128
128
127
127
128
127
127
127
128
127
127
128
126
128
128
128
127
127
127
126
128
126
128
127
128
127
127
128
128
127
127
127
127
127
127
126
127
126
128
128
127
127
128
127
127
128
127
128
128
127
127
127
127
126
128
127
128
127
129
127
128
126
128
127
127
128
127
129
128
128
127
127
127
127
128
126
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
128
128
126
128
127
127
125
127
127
127
128
127
127
127
128
127
128
127
126
127
127
127
126
129
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
126
128
128
127
127
128
127
127
128
127
127
127
128
128
126
128
128
128
127
127
127
128
126
127
129
127
128
128
127
127
128
128
127
128
127
127
127
127
127
128
128
127
128
127
128
127
127
127
126
127
127
128
127
127
127
127
128
126
127
127
127
127
126
127
127
127
127
127
127
128
127
127
128
126
127
127
127
126
127
127
127
128
126
127
127
127
127
127
127
126
128
127
128
127
127
127
127
127
127
128
127
127
126
128
127
127
127
127
127
127
128
127
128
126
127
128
127
127
127
127
128
127
127
127
128
126
128
127
127
127
127
127
126
127
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
126
126
128
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
128
128
127
127
127
126
127
128
127
127
128
127
127
127
128
127
127
126
128
127
127
128
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
126
127
127
127
127
128
127
127
127
127
127
128
126
127
128
127
127
128
128
128
127
127
127
127
128
128
128
126
127
127
127
128
127
127
127
127
128
128
126
128
128
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
126
128
127
127
127
127
127
127
127
126
128
127
127
127
127
127
127
127
126
128
127
127
127
127
127
127
128
127
128
126
127
128
128
127
127
127
126
127
127
128
127
127
127
127
127
127
127
127
128
127
128
126
126
127
128
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
127
127
126
126
127
128
128
127
127
127
127
128
127
127
127
128
128
127
127
127
128
126
127
127
127
127
128
126
127
126
127
127
127
127
128
128
126
127
127
126
128
128
127
126
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
126
128
128
128
127
127
126
127
127
127
128
127
127
127
128
127
127
127
127
128
127
128
126
128
126
127
127
127
127
127
128
126
127
127
128
126
127
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
127
127
127
128
128
126
127
128
128
127
127
128
127
128
127
128
127
126
127
127
127
127
128
128
127
127
126
128
127
128
126
127
127
127
128
126
128
127
128
127
127
127
128
127
127
127
126
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
126
127
127
127
128
126
127
128
127
126
127
127
127
127
128
127
126
127
127
127
126
128
127
127
128
127
127
126
127
127
127
128
127
128
127
128
126
127
127
127
127
127
128
127
128
127
127
127
127
128
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
128
127
128
127
128
127
127
127
127
128
127
128
128
127
127
127
128
127
128
127
128
127
128
128
127
127
127
127
128
128
127
127
128
126
127
127
127
128
127
128
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
128
127
126
128
127
127
126
127
128
127
128
127
128
127
128
127
127
127
126
127
128
127
127
127
127
127
127
127
128
127
127
127
128
126
126
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
126
127
127
126
127
128
128
127
127
127
128
127
127
128
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
128
127
127
127
127
127
128
128
127
128
127
127
127
128
127
127
128
127
128
127
128
127
128
127
127
128
128
128
126
127
127
127
128
127
128
127
127
127
127
127
127
127
126
128
128
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
128
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
126
127
127
128
127
126
127
128
127
127
127
127
128
126
127
128
126
127
127
127
127
128
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
127
128
127
128
127
128
126
127
129
126
128
127
128
128
128
127
127
127
128
128
128
127
128
128
127
127
128
127
127
128
127
128
126
127
127
127
127
127
127
127
128
127
127
127
127
127
126
127
128
127
127
128
127
126
128
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
126
128
128
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
126
127
128
128
127
127
127
127
127
127
128
128
127
128
127
128
128
128
128
127
127
128
128
126
127
127
126
127
127
127
127
126
126
126
127
126
114
71
105
133
143
154
170
185
224
187
137
110
96
91
94
91
70
91
100
65
60
66
87
118
157
128
182
178
160
155
211
119
215
67
144
146
225
112
149
141
176
148
137
66
119
146
196
187
125
87
81
148
160
123
115
113
53
95
98
103
102
70
113
94
103
95
104
71
83
63
58
82
104
118
124
172
180
165
169
172
189
187
189
205
180
178
207
175
210
180
162
147
156
101
112
106
90
93
94
103
95
109
98
92
81
64
50
73
101
127
115
117
88
95
140
157
130
125
154
154
145
162
164
173
149
174
154
163
161
175
173
151
154
153
157
134
146
133
114
143
133
99
91
85
78
81
72
87
70
65
64
53
81
60
55
75
106
102
90
108
144
152
166
163
167
168
171
172
195
190
223
221
206
182
153
140
134
152
164
132
165
147
80
100
88
107
77
110
89
101
81
102
99
121
92
113
63
96
128
162
127
126
135
141
116
124
113
98
104
132
160
152
150
166
154
161
169
171
162
177
183
175
145
151
142
157
150
140
114
111
120
119
103
82
85
57
61
71
70
78
72
73
72
108
107
84
100
125
145
167
146
132
162
163
172
177
166
156
137
148
163
181
162
162
174
175
115
143
133
129
114
111
112
113
97
102
131
108
83
122
127
134
109
110
112
104
105
123
100
98
142
100
109
96
104
89
107
111
133
122
124
148
143
151
161
158
148
161
173
177
166
198
156
175
152
140
157
144
119
137
121
95
102
112
73
121
98
68
71
61
81
92
58
78
79
96
109
137
123
120
119
128
146
158
180
161
143
154
178
168
169
170
185
189
199
146
168
160
152
125
112
137
143
125
140
120
143
92
139
110
117
99
117
105
79
89
99
73
88
71
64
56
80
81
90
100
110
122
117
122
122
138
144
154
167
175
176
184
188
194
196
192
191
206
172
165
166
145
125
133
104
98
107
87
94
102
112
97
90
89
85
89
94
90
108
89
107
98
95
129
119
132
132
134
130
137
111
118
145
118
139
128
144
143
148
166
168
146
149
175
174
161
191
171
174
162
150
172
156
147
151
136
130
129
127
93
104
97
76
93
72
65
77
63
74
73
78
87
98
95
97
115
127
137
138
137
147
160
164
162
153
166
169
148
145
179
180
159
164
129
166
137
142
124
139
120
132
115
108
128
100
114
121
94
88
97
102
109
114
110
107
111
131
107
125
112
126
115
100
99
120
121
116
130
128
128
132
141
141
132
132
149
155
138
145
157
142
157
138
156
149
140
143
148
128
152
137
139
141
139
132
112
121
102
122
111
99
109
106
130
101
109
100
97
115
113
122
114
128
131
122
139
139
142
130
136
138
121
132
130
145
124
148
152
132
139
132
145
156
151
143
139
136
124
104
125
135
115
128
122
107
121
118
107
115
111
128
103
118
120
98
118
124
120
128
130
131
128
139
131
124
135
132
125
136
136
138
139
143
148
132
128
126
139
119
117
121
113
126
111
101
115
122
117
104
121
120
116
128
134
136
132
137
130
135
136
135
146
141
137
156
140
143
146
128
138
129
124
130
120
113
126
120
119
118
120
116
118
118
121
131
121
126
129
135
127
135
132
128
135
129
122
121
129
126
132
112
114
128
104
118
109
123
120
107
119
129
128
122
146
128
135
140
139
138
146
138
154
148
156
148
152
141
147
135
134
126
126
130
117
104
115
116
113
100
106
104
106
96
104
99
111
120
119
131
125
138
140
139
139
135
146
130
139
137
149
139
133
134
131
137
134
125
130
140
124
126
132
125
117
123
114
119
125
119
126
119
123
123
119
123
124
125
120
125
117
120
124
114
110
114
126
113
117
127
118
121
134
136
134
135
144
139
154
138
151
145
142
141
146
148
146
134
144
138
135
128
125
120
119
116
113
111
109
111
105
101
112
101
106
117
118
108
116
114
118
110
120
128
128
131
130
143
133
142
147
162
138
147
149
149
142
141
131
129
133
125
131
127
123
116
147
110
157
129
116
110
136
124
116
110
115
116
131
113
120
104
110
123
121
135
109
115
125
130
113
129
124
137
129
135
140
139
138
139
146
147
146
147
141
139
134
130
131
126
113
124
113
125
118
118
119
112
118
122
121
124
130
120
118
127
119
134
137
126
137
133
139
133
130
128
134
127
126
123
131
126
132
119
119
121
119
132
133
127
122
127
134
128
130
132
126
123
124
123
124
126
128
126
124
120
125
128
125
124
129
124
121
129
116
120
132
140
135
133
128
136
130
134
133
136
135
130
132
137
129
123
123
133
125
119
132
124
126
129
123
130
125
120
125
116
112
121
122
129
124
130
116
117
129
115
121
133
126
126
123
126
120
125
131
126
129
122
130
124
145
137
132
134
128
134
138
132
128
135
134
132
129
130
128
124
124
127
125
123
125
125
125
132
125
127
125
129
124
125
119
128
123
130
123
124
122
129
130
130
134
137
129
128
129
132
131
135
124
124
128
130
126
122
120
124
131
130
130
130
126
130
126
128
131
125
119
121
123
115
118
130
121
118
120
122
123
120
124
127
128
118
124
138
118
122
126
128
130
129
128
134
137
139
136
125
132
131
137
128
130
128
123
126
126
130
126
126
122
119
128
131
126
121
121
130
117
125
117
123
129
116
123
129
124
126
131
133
129
138
125
127
138
134
140
127
127
137
138
135
135
131
126
131
134
133
125
124
122
120
124
130
127
113
122
121
124
117
115
116
127
122
125
127
126
134
130
124
130
123
135
126
140
126
134
133
138
132
129
134
129
136
130
126
135
131
125
131
132
128
124
123
121
126
122
124
123
122
125
121
122
123
120
115
123
114
118
121
121
126
129
121
127
132
125
129
125
120
132
130
127
127
125
129
129
128
127
124
129
129
131
130
132
132
127
129
128
129
130
135
133
139
133
129
136
131
134
128
126
131
122
125
128
130
120
120
128
114
125
125
126
128
119
123
127
122
121
125
126
118
128
127
129
129
128
133
130
141
138
137
139
137
133
134
131
137
131
128
134
131
129
127
127
128
126
128
123
128
127
124
119
117
122
122
126
116
128
123
124
122
126
121
125
127
117
128
119
121
128
128
128
124
120
123
129
124
130
121
134
127
133
128
139
137
133
136
135
136
138
130
134
129
130
132
134
129
129
126
128
132
120
127
122
122
119
121
120
116
117
119
113
114
115
119
119
124
123
127
125
129
129
131
131
125
139
133
137
136
135
134
133
133
135
137
141
129
133
127
134
127
130
132
126
132
128
129
128
121
129
126
127
121
115
122
118
123
121
121
126
124
120
126
124
125
130
124
122
130
125
127
125
134
125
129
132
132
131
132
127
129
131
133
128
133
136
126
133
129
129
128
130
129
125
125
131
131
126
126
129
127
124
130
122
127
129
125
120
122
126
123
120
125
119
115
122
118
122
124
125
123
123
122
127
128
136
130
132
130
129
135
131
134
137
134
136
138
132
133
130
132
133
132
130
126
128
123
124
126
124
121
124
124
124
122
121
124
124
126
121
124
123
124
126
122
130
129
129
128
132
132
132
129
128
133
130
136
128
127
129
130
131
127
124
127
127
131
128
128
125
129
129
130
124
121
127
128
128
123
126
123
127
123
128
128
125
121
125
121
126
123
125
123
123
125
127
124
126
130
126
127
126
130
135
130
129
129
130
135
136
128
130
130
129
132
131
128
129
128
125
122
123
122
122
124
124
121
123
124
123
124
126
125
128
128
124
127
125
129
128
125
129
129
127
128
130
130
130
130
129
131
127
130
130
131
128
129
127
126
126
128
131
127
129
131
131
129
130
131
128
129
130
125
128
129
126
129
127
127
127
124
124
126
124
127
127
130
127
128
127
126
126
130
126
128
128
132
128
130
128
126
129
127
129
125
125
127
128
125
124
126
123
123
124
130
125
127
128
126
128
126
126
128
125
130
123
126
125
128
125
128
126
128
125
127
125
126
124
129
127
127
129
131
127
130
131
131
131
132
130
134
129
131
126
131
130
129
131
125
124
125
123
117
121
119
118
122
119
121
124
124
125
126
124
125
128
126
130
130
133
133
134
134
131
134
129
128
132
131
131
129
130
129
127
124
130
129
127
128
128
128
128
129
128
128
127
129
129
126
122
124
123
124
126
126
124
126
126
121
125
125
124
124
126
128
128
127
127
129
131
128
129
128
131
129
131
129
131
132
129
132
129
128
132
128
131
129
129
128
128
125
127
125
125
128
124
125
126
124
127
125
126
126
122
126
124
125
123
126
123
126
126
127
125
124
125
127
126
129
129
130
127
129
130
127
130
125
127
128
129
127
132
130
131
126
128
128
129
128
128
128
125
126
125
124
124
122
122
125
124
127
128
125
127
128
124
126
128
128
126
131
129
129
129
129
129
130
129
128
131
130
128
130
132
129
127
131
126
125
126
127
126
129
128
126
127
129
126
126
127
126
128
127
124
128
127
126
125
126
126
129
130
128
128
126
126
129
126
125
124
128
127
129
127
128
129
130
127
127
126
126
124
130
126
126
129
129
128
128
127
125
126
124
126
126
128
125
128
126
126
125
124
125
129
126
127
129
128
129
128
128
126
128
128
128
126
127
126
127
124
129
125
123
125
123
125
123
123
124
124
124
126
127
127
129
128
130
127
127
129
129
128
129
131
130
129
130
128
127
128
127
127
127
130
128
126
131
127
130
128
129
129
129
129
125
131
130
127
128
127
128
128
128
126
128
126
127
127
124
124
125
125
129
129
124
128
131
126
126
126
126
125
127
130
128
131
129
129
129
131
128
130
128
128
128
126
127
125
123
126
126
123
125
125
126
126
125
126
126
128
123
125
124
126
126
127
127
124
128
124
127
128
125
127
125
128
127
128
125
128
125
130
127
130
128
128
130
129
127
127
127
127
127
128
126
129
130
129
129
127
126
128
127
128
124
126
128
127
126
127
127
125
127
126
124
127
128
127
126
129
129
129
130
128
128
127
128
129
129
128
129
128
129
127
127
128
128
128
130
129
127
129
128
126
127
125
127
127
127
127
127
128
129
130
126
129
129
127
128
131
126
128
128
125
128
124
126
126
126
125
126
125
124
126
127
125
124
126
126
128
128
127
127
129
130
127
126
128
128
126
129
127
127
129
126
124
128
123
128
124
126
125
126
125
126
124
128
128
127
128
129
127
127
128
128
128
127
129
127
129
128
129
124
127
127
127
127
128
128
127
130
126
127
130
126
125
129
125
126
129
130
128
130
129
127
128
130
128
129
126
128
127
125
127
126
126
127
127
126
129
127
128
128
126
129
129
127
128
129
126
128
129
131
129
128
129
127
126
128
129
126
126
130
125
127
128
125
126
128
126
126
127
127
127
126
128
130
126
126
127
127
128
128
130
129
130
128
129
128
125
125
128
126
125
129
128
126
128
124
124
124
124
123
125
124
127
126
128
128
127
125
125
126
128
126
127
127
129
128
127
127
128
125
129
127
126
126
129
128
127
126
127
126
127
129
129
127
128
126
129
128
125
126
127
126
128
129
125
128
129
125
128
129
128
126
129
127
128
128
127
126
126
129
128
125
127
127
129
131
130
131
131
129
130
129
127
128
128
128
126
127
128
127
126
125
127
124
124
127
127
127
127
129
126
130
129
128
126
128
126
130
127
128
129
130
130
127
128
128
127
127
126
126
125
126
127
127
126
127
125
127
127
127
126
125
129
129
128
131
128
129
127
126
126
126
127
126
127
125
125
127
128
126
127
129
129
121
127
129
116
125
132
121
130
133
129
129
132
125
127
129
123
131
124
128
137
129
124
122
118
127
138
125
119
129
127
132
141
131
116
131
126
121
143
119
119
138
124
134
135
132
111
101
122
122
131
153
131
120
137
139
127
113
122
116
116
152
149
126
126
112
122
139
115
123
109
137
148
147
137
130
129
123
122
114
114
110
139
134
124
126
125
117
107
115
129
119
117
117
138
158
131
126
116
106
145
159
120
121
147
139
125
130
103
116
129
149
157
113
130
129
122
120
116
112
118
136
147
133
107
115
149
125
109
106
119
133
144
137
132
144
150
132
126
106
117
121
126
145
131
117
118
121
128
123
155
114
113
150
116
88
132
125
128
126
128
98
122
153
134
114
138
127
130
134
145
123
133
161
159
142
126
119
128
124
118
122
150
142
135
133
93
107
134
131
91
113
139
115
132
134
123
146
127
111
96
122
132
133
145
108
105
128
140
125
101
137
127
106
132
137
121
158
177
136
134
134
125
119
121
134
123
127
135
117
140
111
114
146
134
125
127
165
128
80
103
137
118
133
116
93
121
135
134
137
140
118
117
139
100
105
104
118
104
125
129
118
110
102
131
133
135
142
144
149
145
145
160
142
146
141
120
144
134
136
164
131
130
138
133
137
132
131
153
142
124
133
139
97
115
132
90
114
146
135
123
149
129
112
122
133
121
118
120
100
120
99
117
120
123
118
117
148
115
109
118
115
109
98
97
117
119
138
146
116
109
117
118
127
121
126
94
119
131
92
117
131
116
139
127
118
137
178
189
173
158
147
168
117
106
143
109
98
149
176
124
155
149
108
137
123
89
104
131
141
139
111
118
122
147
168
131
113
118
128
138
148
153
148
166
156
140
134
125
122
114
147
127
106
128
135
139
134
128
141
119
121
129
113
123
129
118
100
123
138
87
109
138
93
98
136
135
88
94
152
109
88
149
151
88
102
140
90
96
153
125
122
134
130
115
120
132
111
122
127
128
118
154
158
141
138
149
125
133
156
119
91
130
111
113
109
99
118
121
153
125
129
154
166
151
119
112
113
88
127
128
119
104
114
116
121
105
129
123
124
109
136
141
126
111
97
82
100
125
130
103
126
142
159
158
155
145
156
153
136
148
129
125
177
184
138
132
164
145
129
163
130
125
150
170
139
124
157
142
149
156
111
109
163
144
111
138
126
111
140
126
115
117
115
123
142
111
94
99
118
122
130
129
113
89
122
121
105
102
118
131
115
139
122
108
111
110
116
117
134
122
112
111
103
117
123
125
120
111
103
140
140
118
138
173
164
157
164
136
140
143
118
94
127
125
117
141
145
109
124
155
132
131
148
125
114
129
104
93
85
110
119
107
112
103
120
118
126
139
114
122
136
145
137
135
145
121
118
137
141
126
119
144
141
131
131
150
131
144
115
124
159
152
113
106
122
133
150
158
113
133
135
100
122
135
124
119
178
154
113
143
132
99
127
118
106
121
154
142
114
124
135
139
147
110
117
130
140
105
109
118
110
114
132
112
101
93
100
119
132
129
112
88
101
134
151
126
134
146
122
152
146
128
143
142
130
133
111
113
136
114
94
130
120
118
143
134
97
133
153
139
129
132
97
90
121
124
111
125
139
148
150
127
137
152
130
92
130
133
129
144
150
122
148
176
144
139
155
147
139
148
131
132
126
109
136
137
108
107
124
130
133
137
133
117
98
129
150
124
115
119
95
135
130
143
103
100
142
123
120
146
135
127
121
102
102
138
150
112
93
122
132
159
156
117
110
118
123
125
125
97
127
139
165
126
129
143
110
96
106
119
114
135
142
149
166
160
163
131
114
120
134
120
92
119
108
116
139
117
107
114
123
102
124
141
105
80
84
128
133
130
124
101
85
133
159
131
121
139
142
147
148
146
149
127
120
135
130
138
141
145
124
128
159
170
146
130
134
133
147
140
126
127
138
150
170
137
132
139
119
91
109
123
110
124
121
105
131
146
133
106
103
133
131
129
100
84
116
132
118
123
110
115
131
133
118
120
120
124
123
134
155
143
118
123
107
115
125
136
94
74
138
122
107
154
114
104
142
130
131
152
166
119
101
144
137
170
145
92
119
114
102
128
139
109
118
177
163
118
125
138
107
89
122
98
102
112
138
123
133
145
146
135
121
139
142
132
123
125
152
139
146
148
138
117
135
145
125
131
150
119
101
122
151
144
154
131
103
119
155
143
135
126
113
137
167
138
106
125
131
107
125
128
109
105
113
136
127
151
141
119
120
103
111
128
126
118
109
128
138
142
126
113
116
108
101
116
111
117
113
122
132
133
143
122
104
121
135
128
117
112
124
115
149
155
120
121
139
156
139
144
120
116
131
108
132
145
149
119
135
124
104
154
147
114
82
120
131
112
131
111
82
113
123
128
115
121
111
113
132
151
164
151
141
127
120
134
132
129
116
114
168
170
158
142
147
122
150
127
113
127
141
154
159
145
145
152
124
116
117
135
131
103
102
129
118
128
134
95
96
141
116
105
120
114
81
115
132
127
152
124
106
126
136
139
113
117
115
112
151
133
109
102
125
131
132
129
113
110
110
127
139
149
159
130
141
138
122
144
139
130
124
134
149
158
150
130
115
112
106
90
93
110
106
119
130
134
135
133
117
115
119
115
110
103
106
99
126
113
100
120
151
137
141
141
114
133
137
143
147
171
165
142
152
141
134
154
140
146
120
152
171
142
133
122
116
160
147
111
125
123
111
125
142
143
136
129
127
119
115
107
97
107
118
129
146
152
133
127
138
129
122
106
109
106
121
140
141
144
145
131
108
111
119
99
120
147
87
99
135
108
123
109
99
105
119
113
93
127
97
104
141
152
154
135
143
155
151
146
138
126
109
130
153
108
76
120
141
120
134
130
110
98
113
143
127
148
134
125
121
137
123
89
104
133
121
132
155
156
146
153
144
145
120
90
134
146
123
130
149
151
139
156
145
120
116
151
148
127
119
109
133
157
110
114
127
137
134
121
120
82
118
134
134
131
130
144
148
143
122
113
149
132
111
136
130
135
109
115
109
102
148
130
102
102
102
108
148
132
128
146
128
150
135
104
81
104
124
119
124
135
123
147
145
145
117
108
142
115
92
129
144
124
138
138
107
109
128
109
136
124
118
120
116
125
129
135
124
107
133
136
113
93
128
106
119
131
117
137
146
140
138
129
120
128
145
130
137
123
134
122
126
150
144
148
152
136
122
113
152
152
145
163
174
136
150
147
102
105
123
128
134
140
141
134
142
122
105
111
89
97
119
116
98
125
134
139
128
123
98
112
161
141
117
133
110
108
122
135
109
111
152
137
115
120
136
117
113
117
134
128
129
139
130
130
123
152
138
119
118
137
116
128
133
123
139
136
131
116
103
125
140
135
129
143
158
145
146
131
97
87
107
145
105
113
131
125
122
117
111
104
122
138
125
102
133
155
132
143
141
101
116
133
130
130
130
139
126
118
131
112
133
123
118
148
139
146
105
104
129
138
121
120
141
160
146
117
141
147
144
157
129
108
103
124
136
136
132
129
125
129
113
126
115
124
144
153
136
126
149
129
94
112
130
122
112
130
135
125
137
130
102
96
90
113
116
96
95
142
138
117
146
145
142
131
111
144
136
139
135
96
82
116
129
136
137
112
134
168
139
130
124
119
137
132
144
144
148
142
126
147
129
150
144
121
102
108
142
152
127
112
117
125
129
92
117
123
113
141
158
145
142
136
123
99
114
118
121
134
111
105
137
140
139
121
115
110
114
133
96
121
144
125
153
140
116
110
102
119
123
124
134
132
108
105
144
154
138
132
124
148
132
133
147
128
117
129
137
146
141
132
114
118
123
144
139
108
113
112
115
129
146
115
115
138
133
122
109
112
112
117
139
159
143
114
130
109
117
120
129
121
126
154
154
130
141
125
123
129
116
109
123
149
156
153
135
144
135
137
124
102
144
156
142
124
106
131
129
153
120
96
124
124
160
156
99
94
123
137
123
106
126
106
129
132
123
138
120
115
119
114
128
116
125
121
99
113
110
88
114
120
91
106
148
147
133
140
125
97
129
151
129
115
132
149
154
135
137
155
128
125
143
117
98
138
161
179
155
151
152
129
111
117
126
126
133
132
103
130
131
126
124
96
118
138
131
119
101
105
107
103
106
108
102
125
129
118
132
145
119
139
141
138
119
153
136
119
142
135
143
138
131
131
139
141
158
173
176
128
127
144
147
142
152
127
126
152
163
143
122
131
101
113
125
86
83
126
126
141
119
112
135
117
96
110
104
110
131
137
130
115
119
138
139
120
108
123
144
134
109
110
102
111
127
117
91
95
111
121
127
145
119
109
116
121
131
123
112
144
130
127
149
140
106
126
142
107
105
151
151
148
136
118
100
121
144
124
116
132
144
131
138
129
109
101
129
112
77
108
136
150
160
133
151
143
124
127
132
143
137
159
160
127
135
151
152
155
133
142
169
155
150
146
124
124
132
146
130
111
120
122
138
142
115
125
139
122
138
109
110
127
109
119
112
118
112
95
106
113
113
129
133
131
110
117
128
122
136
132
113
121
149
151
148
124
111
113
121
109
94
123
117
132
139
126
134
119
119
118
101
123
133
148
149
150
140
127
156
152
126
119
123
134
139
125
105
117
129
118
92
91
103
116
130
136
106
104
114
111
104
115
116
106
116
123
114
127
106
111
133
134
116
133
158
154
171
148
114
133
168
155
152
153
159
171
175
153
150
142
130
136
119
125
135
174
142
133
146
121
134
109
92
133
115
138
133
118
115
123
122
116
136
111
116
132
124
123
109
110
125
110
101
110
105
118
126
108
116
135
104
129
152
114
104
117
118
100
115
118
90
83
114
132
112
120
135
127
140
133
141
134
148
171
129
126
144
156
150
155
131
115
127
130
117
126
112
137
141
128
119
130
128
109
93
92
113
132
128
142
124
109
133
139
133
137
115
126
144
153
137
130
146
132
133
113
115
140
146
161
149
132
152
144
140
145
135
132
140
134
122
130
133
102
119
131
111
114
128
112
143
152
115
92
110
133
131
119
126
139
139
142
141
133
119
124
125
117
112
130
142
119
129
143
115
121
125
93
105
132
112
119
134
106
119
121
113
137
130
109
110
136
138
120
145
146
113
105
127
146
133
114
119
125
136
135
143
122
104
133
133
109
102
110
113
79
89
111
111
98
114
95
120
110
124
126
118
153
141
121
139
158
165
157
164
142
134
154
149
164
161
142
154
156
156
146
155
163
136
105
130
139
155
166
149
132
146
136
145
155
117
100
115
128
123
123
126
100
115
98
84
107
103
103
115
128
121
127
138
127
114
111
117
120
94
99
125
101
106
130
117
97
121
106
106
152
130
105
122
136
138
123
139
140
140
155
144
131
121
129
140
146
123
145
150
140
140
145
114
118
115
96
123
131
104
134
133
114
136
108
117
127
118
103
103
137
124
131
143
102
89
122
123
135
134
103
115
148
146
157
169
135
132
145
162
150
126
130
122
111
142
127
134
143
150
117
123
145
122
142
141
136
144
129
138
145
140
146
138
127
102
111
125
130
137
130
137
124
140
147
117
126
116
98
107
131
136
123
146
130
128
126
147
139
112
99
117
118
121
124
105
96
108
110
86
102
115
104
116
121
127
152
126
135
152
136
153
141
117
104
105
114
115
120
104
96
125
99
101
143
115
112
99
86
139
142
120
137
137
152
147
137
145
144
110
155
143
137
150
136
161
151
143
143
143
135
111
139
143
122
141
144
151
140
134
140
132
119
128
146
135
141
140
112
121
134
132
134
131
122
93
117
139
125
150
146
123
127
129
136
142
114
95
91
107
119
118
107
125
121
103
114
117
113
131
114
124
111
102
142
138
133
157
118
132
141
98
110
139
103
135
138
121
142
148
119
119
130
100
103
138
123
106
129
152
128
135
147
115
135
115
132
142
134
136
121
125
136
144
124
100
103
120
118
118
126
142
140
131
157
118
110
149
120
95
110
143
144
104
132
151
125
125
130
134
119
136
119
106
125
119
114
135
156
149
132
133
140
130
121
124
119
138
162
163
148
131
118
138
136
113
119
131
122
143
123
133
136
122
130
111
113
106
138
139
128
139
131
118
126
134
114
112
100
114
122
125
114
143
151
141
126
139
141
124
131
125
99
122
117
124
136
124
125
121
130
131
109
109
137
117
115
109
123
141
134
148
120
116
114
125
123
117
131
133
149
133
146
128
109
139
136
100
112
119
111
135
147
144
139
123
133
122
117
117
122
124
108
147
146
119
144
130
124
96
126
121
107
133
124
110
127
111
129
129
148
121
126
130
118
145
155
136
132
142
133
132
132
119
154
155
137
92
158
149
245
210
175
130
98
81
54
48
59
76
96
69
69
95
103
102
89
76
107
107
130
105
100
133
126
124
128
127
136
140
120
113
153
170
162
163
138
128
165
175
179
166
174
211
199
207
201
205
218
197
193
187
162
155
136
126
124
152
124
129
119
115
105
116
100
101
119
113
124
111
107
129
119
109
100
105
106
87
98
80
61
79
87
56
80
57
48
58
39
15
54
70
58
42
56
56
66
80
71
97
96
89
97
97
92
126
117
115
137
148
148
162
154
155
168
177
178
163
173
173
191
190
175
176
191
191
189
184
185
203
217
193
206
202
198
191
185
155
183
208
204
192
167
178
173
208
202
167
156
172
170
178
138
119
121
102
86
107
88
84
120
129
116
91
88
107
75
88
72
84
84
39
68
68
67
91
56
75
106
121
113
103
93
88
103
122
84
89
99
89
87
85
66
101
99
107
79
103
83
77
110
79
84
96
107
127
105
100
99
103
97
97
86
84
107
94
114
125
95
107
117
117
134
111
110
142
160
105
140
173
149
151
162
165
176
186
182
165
182
169
193
195
176
172
188
205
184
187
186
189
183
178
188
177
190
200
193
195
184
174
222
232
173
156
173
163
190
176
124
119
127
154
113
124
150
150
140
134
111
85
100
106
92
87
43
65
71
54
78
92
108
78
86
90
56
81
113
123
67
72
67
102
113
110
82
62
88
102
79
106
103
87
95
128
97
96
115
117
96
109
139
131
137
113
121
145
118
107
135
113
111
164
151
116
118
131
132
148
160
149
115
143
149
134
153
155
157
160
162
168
153
149
129
154
128
113
165
154
122
146
153
107
100
151
116
99
136
133
114
109
128
125
131
168
153
120
151
122
120
133
120
140
109
75
93
119
140
115
120
95
76
130
135
114
117
105
115
100
114
96
77
103
135
113
121
118
103
120
143
144
135
137
138
137
144
125
128
127
148
176
183
140
140
145
143
149
151
159
146
151
165
130
145
155
141
118
134
102
149
164
145
148
120
119
144
139
145
134
144
111
104
132
125
104
128
152
133
126
139
129
126
121
116
143
142
111
132
117
114
157
163
96
109
123
113
142
150
120
96
122
131
126
126
117
124
118
171
118
115
133
150
144
140
138
121
115
134
107
111
129
136
129
131
131
106
122
153
125
96
95
107
99
103
101
66
106
118
127
106
100
93
123
128
124
130
93
89
113
133
129
124
119
103
112
120
125
140
110
123
126
114
122
141
146
119
112
130
149
125
125
111
125
127
149
135
120
117
167
134
106
113
126
122
142
157
150
140
134
122
153
123
116
163
150
137
130
136
132
126
134
99
117
128
164
158
131
137
132
122
157
132
125
149
123
76
118
110
101
134
128
144
152
128
134
155
158
128
132
132
125
130
107
114
135
126
120
108
110
118
154
164
120
113
109
118
133
117
104
108
109
125
97
93
123
126
130
148
146
132
150
184
129
111
136
161
147
156
154
138
129
154
137
121
109
126
142
130
128
123
115
129
142
151
128
123
119
123
143
135
128
129
120
139
114
137
121
107
114
124
126
126
115
113
106
118
112
119
133
115
102
115
136
119
110
109
101
123
142
126
109
133
133
120
124
92
104
121
128
142
131
138
132
131
142
124
133
174
167
144
149
126
141
142
132
109
92
124
143
112
101
89
107
132
163
134
111
133
120
107
93
93
94
101
110
126
101
105
114
127
115
122
149
149
121
127
129
127
131
164
127
110
143
121
172
137
124
129
124
152
154
144
145
139
151
148
125
117
144
134
137
159
154
135
167
133
102
128
150
137
135
142
138
129
142
143
112
96
123
134
109
127
96
102
138
130
136
115
104
105
123
121
106
119
127
110
114
133
132
142
125
108
124
117
118
130
124
95
124
138
118
144
147
143
127
127
147
145
122
112
121
118
139
129
87
125
141
134
136
121
100
121
134
128
135
130
113
110
134
111
125
157
123
117
127
129
152
138
116
114
123
133
143
126
102
120
143
158
151
122
121
135
145
101
110
119
119
116
131
143
114
125
150
116
118
129
133
143
128
105
128
142
119
122
117
97
126
117
135
142
122
106
108
134
146
135
130
143
129
125
145
116
113
134
128
130
143
132
141
139
131
122
137
156
139
131
154
130
116
147
126
84
127
146
121
131
137
103
137
161
144
113
136
129
116
128
122
103
132
115
97
109
123
127
125
143
104
102
130
114
97
89
105
101
101
107
103
120
129
106
133
134
131
111
127
137
141
151
142
138
145
142
153
152
115
104
147
144
165
164
137
158
136
146
149
135
169
154
135
143
144
148
140
134
137
109
125
152
129
100
134
129
133
134
137
112
120
134
90
95
128
87
98
109
106
112
112
115
123
111
124
116
108
99
118
138
116
107
110
94
111
118
114
126
114
94
116
127
141
169
154
145
139
155
158
139
135
136
143
141
136
145
143
125
145
134
126
152
153
140
153
140
118
120
124
97
92
114
96
106
104
87
113
127
130
114
121
119
127
132
132
128
132
144
118
115
120
135
128
143
140
102
121
153
132
109
127
136
134
115
127
150
133
141
165
124
127
133
126
122
134
141
154
139
133
142
144
136
101
117
129
131
165
135
116
134
128
143
136
124
140
141
142
133
121
124
124
129
123
89
114
127
117
122
124
118
107
118
127
117
118
113
95
110
132
100
109
119
108
122
141
130
101
125
154
128
123
113
103
121
117
125
102
95
128
136
130
137
120
103
118
116
97
155
149
125
133
113
128
142
134
123
128
145
150
146
168
157
156
155
157
141
146
187
159
127
141
143
142
135
135
122
102
128
124
126
121
114
139
130
116
133
118
120
118
130
130
136
133
104
97
120
141
112
107
123
111
125
145
107
103
123
122
113
99
97
136
125
154
131
105
125
131
103
126
127
119
149
160
126
124
146
127
114
116
119
122
152
140
118
146
141
143
152
140
149
159
152
130
119
140
143
133
123
79
107
132
108
127
116
127
143
120
140
124
120
122
81
114
108
100
92
105
106
111
126
125
117
143
136
129
141
127
133
123
131
118
107
117
144
142
131
141
142
152
139
127
145
169
148
149
138
120
136
146
125
122
130
136
141
148
145
151
157
141
141
134
158
173
128
118
118
135
140
138
122
85
108
116
110
128
89
107
133
109
114
130
107
93
127
116
112
141
110
101
113
122
110
119
130
111
105
133
120
124
132
136
110
116
111
148
150
154
112
101
142
127
106
129
130
124
135
165
140
122
142
120
119
106
107
125
108
106
113
126
125
127
129
119
146
147
136
131
120
169
163
149
133
108
128
124
126
141
111
143
164
135
159
153
145
140
111
130
133
125
127
131
120
128
131
140
136
140
114
119
142
140
124
121
108
112
91
101
142
115
118
130
124
145
138
121
122
123
134
153
136
106
124
124
103
105
114
98
120
127
121
124
149
141
133
129
142
156
137
119
123
122
128
144
161
105
99
132
122
132
134
107
121
144
136
127
125
118
109
127
118
119
133
108
114
109
120
121
146
145
109
106
108
112
124
116
108
77
74
115
132
153
136
110
114
143
158
143
127
144
141
141
178
159
127
149
139
129
131
124
119
149
129
121
150
145
142
150
141
152
153
152
146
122
135
150
145
134
107
110
109
121
106
107
131
135
121
137
143
130
109
113
133
105
114
127
113
111
121
116
129
136
126
108
123
129
149
119
102
94
82
94
140
123
96
121
125
129
151
128
114
126
142
157
178
133
139
135
131
118
118
115
108
134
107
103
143
155
141
135
143
145
145
134
118
125
111
106
144
113
77
106
112
108
117
127
129
134
143
136
136
141
128
138
133
137
153
137
131
101
123
129
158
153
133
124
142
162
146
122
117
88
92
128
133
161
115
120
141
145
155
130
112
121
125
153
143
117
124
122
119
128
115
106
121
148
119
108
112
123
153
130
128
148
136
135
131
108
115
130
144
114
110
106
110
120
117
121
117
129
138
124
123
133
126
126
122
129
144
147
124
120
122
116
120
141
120
111
114
144
148
130
112
96
92
113
97
119
106
96
120
123
142
125
96
98
117
128
158
133
120
132
129
143
137
129
135
126
139
117
129
146
154
169
157
143
153
155
153
141
137
126
138
139
123
109
104
124
117
127
152
142
151
163
130
115
137
120
121
136
136
144
121
131
127
109
122
144
119
121
127
132
139
143
110
85
95
100
105
126
113
112
104
135
139
128
119
112
112
125
144
132
124
109
112
125
114
119
118
112
130
142
122
116
132
149
146
130
155
141
134
134
122
121
141
135
113
99
120
127
123
128
144
142
134
137
118
106
117
112
108
98
107
136
132
125
122
118
120
129
146
132
122
137
157
141
122
128
133
129
125
107
106
136
128
134
141
131
133
159
156
135
130
130
143
148
141
135
141
139
130
119
116
128
134
136
127
120
141
150
140
126
130
141
139
121
100
108
124
126
109
107
130
138
140
138
122
108
104
127
112
118
126
131
126
119
114
117
134
128
122
126
124
121
125
116
118
123
125
134
123
111
115
114
114
125
131
133
128
117
116
117
120
115
110
120
126
129
135
133
117
113
115
108
112
115
118
126
133
130
136
141
142
143
127
129
139
144
146
152
148
148
156
151
138
131
132
142
140
132
130
134
138
144
137
128
129
135
138
136
129
126
132
130
130
126
126
139
129
110
107
115
114
121
120
118
129
138
137
125
117
119
123
123
119
118
123
125
120
116
121
124
120
121
123
121
125
128
125
121
126
130
127
118
112
116
122
129
130
136
140
142
140
137
131
130
124
124
124
127
131
130
127
128
133
134
129
130
131
133
128
114
118
118
116
117
114
107
113
116
113
112
108
109
117
122
121
123
125
124
122
124
123
125
129
130
131
133
131
138
137
132
134
135
137
137
134
137
140
146
146
144
138
133
138
143
142
144
143
146
146
141
144
143
138
136
134
134
133
128
129
129
127
128
129
127
125
127
126
121
116
117
116
114
114
119
115
119
114
111
114
116
117
115
111
111
115
118
118
114
112
114
119
123
125
128
125
125
131
131
129
128
127
125
128
129
128
130
129
132
135
135
137
135
128
127
128
127
128
126
126
128
125
126
122
126
122
120
122
128
129
123
122
124
129
133
132
129
129
133
133
133
131
127
130
131
124
125
130
130
128
125
126
133
136
132
129
128
128
130
131
130
130
130
132
138
134
132
136
135
135
136
134
131
135
135
134
134
132
135
131
127
128
127
128
128
125
121
123
127
125
123
119
119
119
117
119
122
122
120
122
118
118
120
117
116
116
118
124
126
122
123
124
126
123
122
120
120
124
124
124
125
126
127
130
131
132
130
125
124
121
121
127
125
121
124
127
130
129
127
127
126
127
128
130
128
130
131
132
131
132
133
128
125
129
129
131
134
133
130
128
132
131
126
126
126
124
124
128
129
131
130
131
129
130
134
131
128
128
132
134
135
134
134
134
136
135
133
131
129
130
128
127
129
133
134
131
132
133
131
129
127
124
124
127
126
128
127
125
126
126
126
125
124
126
123
122
123
123
126
127
123
126
125
121
118
119
119
121
123
125
122
121
122
123
122
122
119
119
120
121
123
127
125
123
124
127
126
123
121
122
123
126
129
126
125
128
129
129
127
129
127
126
129
128
128
130
134
132
131
133
131
132
131
126
127
129
128
129
128
125
125
129
130
131
131
129
128
128
127
128
131
130
129
130
129
130
129
129
127
125
129
129
130
129
128
134
131
126
125
128
126
127
130
127
129
131
132
131
129
131
130
127
130
132
131
130
127
128
129
131
130
127
127
128
128
125
126
127
129
127
125
126
128
127
124
124
122
120
123
124
122
121
124
125
125
125
126
124
125
126
124
123
124
123
124
125
125
125
125
124
124
124
124
124
126
125
125
128
130
126
124
127
127
126
127
126
127
128
127
128
128
126
126
127
127
126
126
127
128
127
129
128
131
127
126
126
129
131
131
130
128
129
136
135
131
130
131
131
128
130
126
129
129
126
127
131
131
131
129
130
128
126
130
130
127
129
130
129
129
128
126
128
128
128
128
127
128
128
127
126
126
124
125
129
126
124
124
124
124
127
124
125
125
123
125
124
122
124
126
124
126
127
124
128
127
125
125
128
128
128
127
126
127
127
129
126
126
128
126
126
128
129
127
128
126
125
129
128
127
128
125
127
128
127
128
126
127
130
127
124
126
125
125
125
126
126
127
129
126
127
127
129
129
130
128
129
131
128
129
127
129
133
132
131
128
126
128
129
128
127
128
129
126
124
127
127
128
128
128
129
128
129
131
128
127
126
129
129
129
128
129
128
129
129
127
129
128
126
127
129
126
127
128
129
127
126
126
127
128
128
127
126
127
126
126
125
128
126
127
126
125
126
128
129
126
125
126
127
126
126
125
124
124
126
125
125
126
127
126
125
126
124
125
128
126
126
127
128
128
129
130
128
128
129
129
127
128
130
130
128
128
129
127
128
129
128
126
128
126
125
129
128
128
128
128
127
128
128
127
126
125
126
126
126
126
126
124
126
126
125
125
127
126
125
127
127
127
128
128
129
128
128
129
127
130
131
129
129
128
128
129
130
128
127
129
128
128
129
129
129
128
129
129
128
129
129
129
127
128
128
128
128
127
127
129
127
128
128
126
128
127
125
126
127
126
126
127
126
125
126
126
127
127
127
128
128
126
126
126
127
127
127
127
126
126
128
129
128
127
128
127
129
128
126
126
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
129
127
127
127
127
126
128
128
126
125
125
126
126
127
126
126
127
126
126
127
128
128
128
128
128
127
128
128
128
128
126
129
129
127
127
126
125
127
127
126
127
127
125
127
128
126
127
127
127
128
127
127
128
128
130
130
130
129
129
128
128
129
128
128
128
127
127
129
128
127
127
125
127
128
128
128
128
128
127
128
127
127
127
127
128
128
128
128
128
128
127
126
126
128
129
127
127
128
126
127
128
127
127
129
128
126
126
126
126
127
128
126
126
127
127
128
128
128
127
127
128
128
127
126
126
127
126
126
127
127
125
128
127
127
127
127
127
128
128
127
126
127
126
126
129
126
126
127
126
127
127
127
127
126
126
127
126
127
128
126
126
127
127
127
128
128
128
128
128
128
128
128
128
129
128
129
130
128
127
128
126
127
127
127
127
126
127
128
127
127
127
127
128
128
127
127
128
129
129
128
128
127
127
128
128
127
126
127
128
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
128
128
127
127
128
128
127
128
128
128
128
128
127
128
127
127
127
127
126
126
127
126
127
128
127
126
127
126
126
127
126
127
126
126
126
127
127
127
128
126
127
127
126
126
126
127
126
126
126
127
126
128
127
127
128
128
127
128
128
127
127
128
127
128
128
127
127
128
128
128
128
128
128
127
127
127
126
127
128
126
126
127
127
127
127
127
127
128
127
126
127
127
127
128
128
127
129
127
127
128
127
128
127
127
127
127
126
128
127
127
127
128
128
128
128
127
127
129
128
129
128
127
128
128
128
127
126
127
129
127
127
127
127
126
127
128
126
126
127
127
126
127
127
126
127
126
126
126
127
127
127
127
126
126
128
127
126
126
127
127
127
126
126
126
126
127
127
128
128
127
127
126
126
127
126
127
127
127
127
128
127
127
128
127
127
128
126
126
127
127
127
127
126
126
126
127
127
127
127
127
129
128
127
128
128
127
128
127
127
128
128
128
127
127
128
128
127
128
127
126
128
127
127
128
127
127
128
127
126
128
127
127
128
127
126
127
127
128
128
128
128
127
128
127
127
128
128
126
127
127
127
127
127
126
127
128
128
128
128
127
127
128
129
128
127
127
128
127
127
127
127
128
128
127
127
126
127
127
127
127
127
126
127
126
126
127
127
127
126
126
127
126
126
127
126
127
127
126
126
126
127
126
127
127
126
127
127
126
126
127
127
128
128
127
127
127
127
128
128
127
127
127
128
127
127
126
127
127
127
127
126
127
128
127
127
126
126
126
126
126
126
127
127
128
128
127
127
127
127
127
128
127
128
128
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
127
126
127
127
126
127
127
126
127
126
127
127
127
127
126
127
127
127
127
127
128
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
126
127
126
127
128
127
127
126
126
127
128
128
128
127
127
128
127
127
128
127
127
128
127
126
127
127
125
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
126
126
128
128
127
127
126
126
127
127
127
127
127
126
127
127
126
127
126
127
128
127
128
128
127
127
128
128
127
128
128
127
127
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
128
128
128
127
126
127
126
127
127
127
128
128
127
127
128
128
127
127
127
126
128
127
126
126
126
127
127
126
127
126
127
128
127
127
128
127
127
128
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
127
127
126
127
128
128
128
126
127
127
128
128
128
128
127
127
128
127
127
128
127
128
128
127
127
128
126
126
128
127
127
127
127
127
128
127
127
127
127
127
127
127
126
127
128
128
127
126
127
127
127
127
127
127
127
126
128
127
127
127
127
128
127
127
128
127
127
128
128
128
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
127
127
128
127
127
127
126
128
128
127
127
127
126
126
127
127
127
127
126
128
128
127
127
128
128
127
127
127
126
127
126
127
127
126
127
127
127
128
126
127
127
127
127
128
127
127
127
127
127
128
128
128
128
127
127
128
128
128
128
127
127
128
127
128
128
127
126
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
128
128
127
127
127
126
127
128
128
127
127
127
128
127
127
127
127
126
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
127
128
127
127
127
127
127
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
126
127
128
129
128
128
127
126
127
127
127
127
128
126
127
128
127
127
128
127
127
127
127
127
127
127
127
127
126
127
127
127
127
126
126
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
126
127
127
128
128
127
127
127
128
128
127
127
127
127
128
128
127
127
128
128
129
127
127
127
128
127
127
127
127
128
128
127
128
127
127
128
127
128
128
127
126
127
127
128
128
128
127
127
127
127
128
127
127
128
127
126
127
127
127
128
127
127
127
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
126
126
127
128
128
127
126
126
127
128
128
128
127
127
127
126
127
127
127
128
128
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
126
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
126
126
127
128
128
127
127
127
127
128
127
126
127
128
127
128
127
127
128
128
129
128
127
128
128
128
127
126
127
128
128
128
127
127
127
127
127
127
127
128
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
128
127
127
127
126
127
127
128
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
126
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
128
127
126
127
127
126
126
127
127
126
127
127
126
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
126
127
127
127
128
127
127
127
127
128
128
127
127
126
127
127
127
127
128
128
128
127
127
127
127
128
127
127
128
127
128
127
127
127
127
128
127
127
127
127
127
127
128
128
128
127
127
127
127
128
127
127
127
127
127
127
126
126
127
128
128
128
127
128
127
128
128
127
127
127
127
128
127
127
127
128
127
127
127
127
128
128
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
126
126
126
127
127
128
127
127
126
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
126
127
128
127
127
127
127
128
128
128
128
127
127
127
126
127
127
128
128
128
127
127
127
127
128
127
126
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
127
126
126
126
127
128
127
126
126
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
128
127
128
127
127
128
128
127
126
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
129
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
128
127
127
127
126
127
128
127
127
127
127
127
127
127
126
127
127
128
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
126
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
128
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
128
128
127
127
128
129
128
127
126
127
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
127
127
126
127
128
127
127
127
127
127
127
126
127
127
127
128
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
126
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
128
127
128
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
128
128
127
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
128
128
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
127
126
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
126
127
127
126
121
79
98
129
140
148
188
200
198
194
134
108
96
95
92
94
94
101
70
22
65
63
72
130
126
167
188
140
153
150
130
130
229
137
132
150
166
225
163
106
131
149
133
112
150
130
169
153
133
105
72
129
146
89
117
80
115
83
45
81
120
125
88
82
103
108
110
87
81
52
65
92
117
131
152
164
170
187
187
188
192
194
212
224
190
151
183
188
171
184
169
157
186
139
108
110
100
90
90
101
97
90
69
68
79
66
67
68
57
57
72
91
99
92
90
123
127
92
119
165
165
164
164
160
167
167
180
180
187
186
196
197
165
146
158
130
132
132
129
137
153
130
93
88
82
85
75
55
81
67
89
76
84
57
34
58
87
102
105
111
129
137
144
143
130
158
170
158
170
173
185
201
229
212
190
178
175
174
182
169
186
185
140
103
109
75
69
67
87
85
71
53
73
95
83
91
64
78
103
132
125
159
103
118
104
105
151
121
105
117
134
151
165
186
199
194
170
187
201
166
194
194
160
178
171
135
147
143
131
151
135
121
115
100
100
79
69
62
52
55
89
49
49
55
54
86
69
105
88
107
122
131
156
107
140
158
158
176
185
147
157
189
186
165
167
170
131
166
125
161
146
146
136
139
155
151
109
131
120
115
95
128
115
107
97
99
81
102
82
98
104
135
90
80
105
87
86
105
111
103
119
124
132
148
154
128
170
166
183
205
182
190
150
172
168
133
165
128
143
161
146
163
126
145
138
132
108
102
89
73
78
87
87
114
84
77
97
89
120
110
109
121
109
101
129
129
121
124
137
128
146
125
134
157
173
151
166
155
163
143
161
131
115
150
149
179
145
111
143
165
135
122
103
134
121
144
126
93
79
93
99
93
110
82
96
98
81
124
111
94
114
127
136
133
132
146
153
159
148
151
140
155
165
147
145
139
162
125
144
150
117
117
130
136
119
102
110
126
105
88
115
100
103
114
109
132
121
145
127
129
142
144
126
139
142
128
139
107
129
118
111
115
117
110
116
118
148
143
126
152
163
140
126
132
152
139
130
135
138
128
152
152
129
127
150
122
128
115
108
110
90
91
86
115
84
89
95
113
131
118
130
128
122
145
119
124
155
155
150
139
147
137
150
162
153
149
140
159
141
140
153
119
125
108
120
122
104
128
99
105
117
101
113
96
115
109
81
116
109
117
95
122
109
130
127
122
115
150
135
128
137
152
154
140
170
167
149
165
156
134
156
150
139
146
146
140
133
137
121
122
121
109
115
107
107
115
99
106
103
103
100
111
82
105
100
103
108
121
121
125
126
128
123
123
125
131
153
140
154
144
162
168
153
163
150
167
151
150
144
143
149
151
152
150
142
127
156
125
121
114
126
107
109
105
101
108
107
106
109
104
111
99
104
118
100
102
112
111
104
113
110
125
121
131
133
131
150
127
142
138
142
139
144
143
139
143
158
157
158
145
151
148
151
166
145
137
138
128
132
125
128
107
106
119
94
102
103
92
101
94
93
95
105
105
105
98
111
119
130
131
137
140
134
140
138
134
134
131
149
139
138
131
134
154
141
133
141
139
133
135
136
136
130
138
138
138
135
136
135
123
128
130
123
119
117
119
105
119
119
104
99
110
122
120
106
114
106
130
122
127
127
132
130
127
133
135
148
140
138
152
149
151
138
141
150
131
130
132
117
125
122
112
113
118
115
125
115
112
115
119
111
112
116
121
110
118
126
127
133
135
145
145
139
148
136
138
134
143
133
138
133
139
134
132
131
123
128
132
123
122
125
118
120
124
116
123
118
116
122
120
115
116
118
116
117
112
116
120
116
120
118
117
115
115
128
124
122
126
137
130
136
139
136
153
149
146
152
151
158
159
153
152
137
144
136
139
132
133
125
124
117
124
114
118
111
116
109
104
110
114
114
116
110
117
114
109
105
119
121
130
137
135
134
138
138
137
136
137
148
139
134
134
137
132
130
117
124
126
127
123
131
137
121
138
136
125
119
120
136
140
115
122
121
130
116
121
117
118
121
124
129
122
118
133
122
129
118
131
140
125
124
138
146
137
142
143
137
144
146
135
137
132
133
127
121
118
118
118
114
109
115
117
106
113
124
124
111
117
113
115
110
122
127
126
134
129
136
136
141
135
136
135
151
139
137
142
133
136
136
137
132
129
134
138
130
126
139
141
122
125
128
127
121
125
125
111
116
114
111
115
115
115
123
118
124
122
121
123
118
120
119
130
135
141
133
131
139
129
133
131
136
129
136
132
133
132
130
130
126
119
130
127
132
134
132
129
131
132
129
124
126
118
120
119
122
122
124
119
120
117
119
128
130
123
131
130
131
126
124
128
134
132
123
128
126
133
139
134
135
132
133
125
140
135
139
134
118
129
134
128
130
120
118
116
111
118
123
116
116
129
120
119
120
121
122
128
125
125
125
119
124
123
128
131
127
128
137
137
142
139
132
142
142
134
137
135
131
129
140
131
129
130
124
142
135
131
134
129
122
128
129
119
122
124
120
117
122
111
122
110
112
114
117
122
109
112
118
126
123
123
123
131
129
130
136
129
138
135
141
136
131
128
135
135
130
136
137
130
130
131
130
132
129
121
125
130
126
127
120
117
130
123
128
120
124
135
120
128
126
118
122
116
127
123
121
119
125
131
122
133
133
132
131
125
131
138
128
137
132
132
137
131
134
139
128
132
134
135
124
131
126
136
133
121
121
124
124
126
118
122
125
126
136
121
120
119
126
129
118
118
129
129
123
125
121
128
127
127
131
125
129
127
124
133
130
132
131
120
121
129
130
127
123
130
128
125
126
128
126
129
130
126
122
133
131
132
121
130
126
125
135
127
123
124
127
131
130
123
121
128
119
122
127
120
122
119
120
118
127
123
126
122
127
127
129
132
132
136
132
137
137
132
134
136
140
137
131
128
132
129
125
136
133
134
125
128
128
125
127
127
119
120
120
123
114
121
119
117
124
122
127
126
134
118
132
134
134
126
124
127
130
133
134
132
137
138
130
128
131
139
126
134
130
124
128
125
129
125
133
128
125
131
126
125
127
125
128
117
130
125
122
119
121
127
117
122
126
120
121
121
125
120
121
120
122
124
124
118
127
126
127
122
129
135
124
129
135
131
132
134
132
131
136
132
132
133
131
132
130
131
129
128
127
127
123
127
119
125
127
125
122
122
128
125
125
127
124
126
128
125
128
126
133
129
131
130
126
132
125
132
130
125
130
123
129
124
129
133
127
131
128
129
126
124
128
127
120
125
125
124
123
126
123
124
128
123
129
126
128
128
125
130
130
125
131
135
128
128
134
131
133
127
132
133
131
132
127
133
131
128
128
128
125
119
129
125
122
124
122
126
125
123
123
121
122
120
125
125
125
126
127
128
125
124
131
123
128
128
124
129
126
123
128
130
129
131
129
129
127
132
130
131
131
133
131
133
130
135
126
130
128
133
128
127
132
127
125
127
124
123
124
122
122
121
121
119
123
122
126
123
124
126
123
126
122
126
128
123
128
127
131
131
130
131
134
133
135
129
131
133
130
131
135
132
133
130
130
133
135
128
131
130
132
129
124
125
126
126
123
120
126
121
122
123
120
123
123
123
121
126
122
125
121
128
126
122
124
125
124
125
124
127
127
125
126
129
130
133
127
131
132
129
127
132
130
130
130
127
130
129
129
131
129
129
127
130
126
125
123
127
126
122
125
121
122
123
124
124
123
125
125
125
125
123
124
126
127
122
127
127
127
130
128
128
133
127
132
130
131
129
133
132
132
131
132
132
130
132
130
130
126
130
126
131
126
127
127
123
125
124
126
124
125
121
125
122
127
122
123
124
123
124
126
129
127
130
131
132
130
132
132
131
129
130
129
131
130
133
129
131
124
127
128
129
125
126
125
126
124
125
129
123
127
124
125
129
124
128
128
126
125
125
125
126
123
126
127
124
124
126
124
126
125
126
126
128
125
129
128
128
129
131
127
129
129
132
131
129
131
134
129
130
131
128
128
127
125
123
123
124
124
122
122
124
123
125
125
123
125
126
123
131
127
125
129
127
126
129
127
127
128
127
128
128
129
129
129
126
128
129
126
128
131
130
127
131
129
129
132
130
129
131
129
131
128
128
129
128
127
129
127
126
128
125
125
127
127
125
126
127
126
126
124
128
126
127
130
126
132
130
128
129
130
128
129
127
129
127
128
127
128
125
127
127
125
126
127
124
128
125
124
127
127
125
126
126
126
127
125
124
126
126
125
128
126
128
129
128
127
127
126
130
127
128
127
129
128
127
128
126
124
126
127
126
125
127
128
128
128
125
128
125
127
128
126
126
125
125
124
124
124
123
126
126
129
128
127
128
128
128
125
127
128
128
127
132
130
127
132
130
131
130
130
130
130
129
131
129
130
127
128
130
127
127
129
128
126
127
129
126
129
126
128
129
125
126
124
126
125
125
128
126
128
125
125
130
128
127
127
129
127
127
129
128
127
129
127
130
127
129
129
127
130
130
126
128
125
127
128
126
125
125
126
126
122
125
125
124
122
127
123
126
125
124
124
126
124
126
130
126
129
128
128
128
129
128
130
128
129
131
125
128
128
126
126
129
127
127
128
128
128
126
127
126
126
128
127
126
126
125
128
127
127
128
126
127
127
129
130
129
131
129
126
126
130
129
127
128
129
130
128
128
126
127
129
129
129
130
127
130
130
128
128
127
127
127
126
126
127
127
126
127
124
128
126
125
126
129
125
127
126
129
129
127
127
129
128
127
129
128
127
129
126
127
129
126
127
129
126
126
126
126
127
126
127
126
127
126
125
126
124
128
126
126
127
125
127
124
129
128
126
128
127
127
127
128
126
127
126
127
128
127
126
129
126
127
128
127
129
126
128
127
127
127
126
127
127
126
128
124
129
127
127
128
128
129
128
127
128
129
128
127
127
128
129
127
129
127
129
128
128
130
129
128
129
128
129
129
127
126
130
128
126
128
128
129
126
125
128
127
128
127
127
128
127
128
127
126
126
126
128
127
127
128
126
129
126
127
128
128
126
128
126
128
128
127
126
128
127
126
128
127
127
129
125
128
127
125
127
124
125
125
126
126
128
125
128
128
128
128
127
127
126
129
126
128
127
124
125
126
126
124
123
127
126
127
125
126
128
127
127
127
127
129
127
130
128
128
129
129
129
129
128
128
128
129
128
129
129
127
130
127
126
128
126
124
127
125
127
127
127
128
126
126
129
127
129
128
129
129
128
127
129
129
127
128
127
128
127
129
127
128
128
128
127
128
128
130
127
128
127
130
126
127
128
129
128
128
128
128
127
129
128
126
127
127
126
126
126
124
126
126
127
125
127
127
127
126
127
126
127
128
127
127
128
128
127
128
128
130
128
129
129
128
127
127
126
126
125
125
126
125
125
124
124
125
125
126
126
127
126
127
125
125
127
126
128
127
126
128
129
128
127
126
127
128
127
128
128
127
126
128
126
126
128
128
127
128
129
129
129
129
128
128
127
128
128
126
127
127
128
128
128
126
129
127
129
128
128
127
128
126
128
128
127
128
127
125
127
127
128
128
128
127
129
128
129
127
128
129
128
128
129
129
128
128
127
126
128
128
126
128
127
127
126
128
125
125
127
126
128
127
127
127
128
128
126
127
127
128
127
127
126
127
126
128
126
126
126
128
126
127
126
126
126
126
126
125
126
125
126
126
126
127
127
128
127
128
127
126
128
127
127
128
126
126
127
126
127
126
127
127
127
127
127
128
126
127
128
127
128
127
127
127
126
127
126
127
125
126
127
127
128
127
127
128
128
128
128
129
127
128
129
128
129
129
129
127
128
128
129
127
128
128
129
126
127
127
127
127
127
128
126
126
127
127
128
126
128
128
128
125
127
128
128
128
126
128
128
128
128
127
127
129
127
129
127
127
128
126
126
126
126
126
125
126
125
128
126
127
127
127
126
127
127
128
126
126
127
127
127
126
127
127
127
127
126
127
127
127
129
128
127
127
127
127
129
127
127
127
127
127
126
127
126
126
126
127
127
127
127
127
126
127
127
128
127
126
127
128
127
127
128
128
127
128
128
129
128
126
127
126
127
126
131
129
127
127
128
128
127
125
127
128
127
128
128
130
126
130
127
127
127
126
127
128
128
126
129
127
127
128
127
127
128
128
127
128
127
128
128
127
128
129
129
128
128
129
127
129
128
128
127
128
127
127
128
127
127
127
125
127
127
125
126
127
125
127
126
126
127
125
126
127
126
126
126
127
126
127
124
127
125
127
127
126
125
128
126
127
126
128
127
128
126
127
128
126
129
127
126
128
128
127
127
127
126
127
127
125
126
126
127
127
126
126
126
126
126
125
127
127
126
128
127
127
127
127
129
127
127
128
129
128
128
130
128
128
129
128
128
128
128
128
129
128
128
129
129
127
129
128
127
126
128
129
128
129
127
129
127
127
127
127
127
128
126
127
126
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
126
128
127
128
127
128
127
128
128
127
127
128
127
127
128
127
126
126
128
127
127
127
128
127
127
127
126
127
127
125
128
126
126
126
127
125
126
127
126
126
126
127
127
127
126
128
127
126
128
126
127
127
127
127
128
127
128
128
128
128
128
129
128
128
128
128
127
127
127
127
128
127
127
127
126
126
127
127
126
126
127
127
127
127
126
126
128
127
127
127
128
128
128
127
129
127
128
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
126
126
127
126
127
127
127
127
128
127
127
126
128
128
126
127
127
126
127
127
127
127
127
127
127
126
127
126
128
126
128
127
129
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
126
128
127
127
127
128
127
129
128
128
128
127
129
128
128
128
126
128
127
128
128
128
126
129
127
127
127
127
128
127
127
128
128
127
127
127
127
127
128
127
128
127
126
127
127
127
127
128
127
127
128
127
127
128
127
128
128
128
127
128
128
128
129
127
128
128
128
128
127
128
128
127
127
127
128
126
128
127
126
126
125
127
126
126
126
127
127
126
126
127
126
127
127
127
127
128
127
127
127
128
127
128
127
127
128
127
128
128
128
127
127
127
128
128
127
128
127
127
127
128
127
127
128
126
128
127
126
127
127
126
127
126
127
127
127
126
127
127
127
128
127
127
128
127
128
128
126
128
127
127
127
128
128
128
127
128
128
128
128
128
127
128
128
128
128
128
127
128
127
127
127
127
126
127
127
126
127
127
126
127
127
127
127
128
127
127
127
128
128
126
128
127
128
127
127
128
128
127
128
128
127
128
129
127
128
127
128
127
127
127
128
127
127
127
127
126
128
127
126
126
126
127
126
127
126
126
127
126
127
126
126
127
127
128
127
127
128
127
128
127
127
129
128
128
127
128
127
129
127
128
128
129
127
128
126
127
127
127
127
126
126
128
126
126
127
127
127
126
127
126
127
127
127
127
127
127
127
127
128
127
127
128
128
127
128
128
128
127
128
127
128
128
128
128
127
128
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
126
127
127
127
126
128
127
126
127
127
126
127
126
128
126
127
128
128
127
128
126
128
127
128
127
128
127
127
128
127
128
128
127
128
128
128
128
127
128
127
127
127
127
127
127
127
126
127
127
127
127
126
127
127
126
128
126
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
127
128
126
128
127
128
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
128
127
128
127
128
127
128
128
127
127
127
127
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
126
126
126
128
127
126
127
127
127
127
126
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
127
127
129
127
129
127
128
127
127
128
127
127
128
127
127
127
128
126
127
127
127
127
127
127
127
127
128
127
127
127
127
127
126
127
127
127
128
127
127
128
128
128
128
128
128
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
126
128
127
127
127
127
127
127
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
128
127
128
127
127
128
127
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
127
128
128
127
127
128
128
127
127
128
128
127
128
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
126
127
128
127
127
127
127
127
126
128
127
127
127
128
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
126
127
127
126
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
128
127
128
128
127
128
127
127
128
127
127
128
127
128
127
127
128
128
127
128
128
127
127
128
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
128
127
128
127
127
128
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
128
127
129
127
128
127
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
126
127
127
128
127
127
128
126
128
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
128
127
127
127
128
127
128
127
127
128
127
127
128
127
127
127
128
127
128
127
127
127
127
127
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
128
127
127
128
127
128
128
128
128
128
128
128
128
128
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
127
126
127
127
127
127
127
127
127
127
128
127
127
128
127
128
128
127
128
127
128
128
128
127
127
128
128
128
128
128
127
128
127
128
127
128
127
127
128
127
128
127
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
128
127
128
127
128
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
126
127
127
127
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
128
128
127
128
127
127
128
128
127
128
128
128
127
128
128
127
128
127
128
128
128
128
128
127
128
128
128
128
128
127
128
127
128
127
127
127
128
127
128
128
128
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
126
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
128
127
128
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
128
127
127
127
127
128
128
127
128
127
128
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
128
128
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
128
127
127
127
128
128
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
127
128
127
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
127
128
128
128
127
128
127
128
127
128
127
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
127
128
128
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
125
115
118
118
122
133
135
135
129
125
131
133
136
137
136
137
136
134
134
135
141
141
145
89
151
138
224
219
185
129
82
65
69
73
75
78
82
86
86
89
92
99
101
104
105
107
112
116
117
118
110
110
121
135
145
120
116
120
134
151
169
153
163
151
166
181
182
177
178
188
179
186
185
189
183
184
186
181
169
160
156
155
149
142
141
141
135
129
130
119
121
114
106
106
104
104
104
92
98
89
86
94
85
78
72
56
41
66
63
76
70
61
55
51
39
45
51
57
49
53
65
69
77
84
91
96
106
107
109
107
117
126
137
141
149
154
155
158
162
165
172
177
177
183
181
184
191
196
194
190
190
187
191
194
188
195
202
186
197
194
198
196
190
181
186
183
188
179
182
180
159
162
152
150
143
149
149
136
117
113
108
111
107
108
109
110
110
106
104
93
82
90
89
95
95
90
88
86
91
87
84
87
81
82
89
89
90
81
85
83
83
83
79
79
75
71
80
72
73
78
83
84
88
82
79
75
78
81
90
95
94
93
96
102
104
111
107
108
110
109
115
118
127
131
140
139
139
145
149
151
156
155
159
158
164
167
174
175
181
186
181
181
182
181
184
189
190
187
184
189
189
188
187
181
179
182
190
187
179
179
175
172
174
169
166
162
163
157
164
154
150
148
143
138
135
132
129
127
126
121
118
116
109
106
107
105
98
100
96
94
94
92
93
89
87
87
86
92
88
89
86
88
88
90
91
94
89
92
94
95
96
95
97
101
103
104
105
106
109
105
112
116
114
113
120
118
119
120
123
124
124
128
128
128
131
129
135
135
132
136
134
136
140
137
140
141
141
141
140
138
134
137
139
139
140
137
138
133
135
133
134
134
131
130
128
129
126
132
128
132
128
127
126
127
129
125
125
120
124
120
123
118
122
120
120
120
119
119
118
120
120
122
120
124
119
123
121
123
122
124
123
124
125
127
128
127
128
129
129
128
131
129
135
127
134
132
132
133
135
137
132
138
134
137
136
141
137
139
136
142
139
141
138
138
141
139
138
139
139
139
139
140
139
140
141
139
139
140
139
138
137
137
137
137
138
139
136
134
135
131
135
133
133
134
133
132
132
132
132
129
131
130
129
129
129
129
130
128
127
125
126
127
124
126
123
127
124
126
121
125
123
122
122
122
121
120
122
124
121
120
120
121
118
121
119
118
118
117
120
118
116
117
114
119
116
115
115
114
118
116
115
115
116
115
116
116
116
114
114
115
116
116
117
115
118
114
116
119
113
119
116
116
117
118
118
118
118
120
118
119
121
121
121
121
122
123
123
122
126
123
126
127
125
130
125
129
128
130
131
131
129
130
133
133
132
135
134
133
132
134
133
135
135
135
134
135
137
137
136
137
137
136
138
136
137
137
139
138
138
136
137
137
138
137
137
136
136
137
135
137
136
134
136
132
137
132
134
133
132
132
132
130
130
130
128
130
128
130
127
128
128
128
129
125
126
129
125
127
126
125
126
125
125
126
125
124
127
124
125
125
125
124
125
125
125
123
126
123
124
123
123
124
123
124
123
124
121
124
123
123
122
122
123
123
123
123
123
122
122
122
125
123
124
125
123
124
126
124
126
125
125
125
126
126
126
127
126
127
127
126
126
127
125
127
127
127
127
126
128
128
127
126
126
126
128
126
128
128
124
128
127
125
125
128
126
126
126
126
126
127
125
127
126
127
128
127
127
127
128
127
129
127
127
128
128
129
128
128
127
129
127
129
129
126
129
127
127
127
128
128
128
129
127
129
127
126
128
126
127
127
127
127
126
127
127
127
128
128
127
125
128
129
127
128
127
127
127
128
128
128
127
127
128
127
129
128
127
129
127
128
130
129
128
129
130
130
127
130
127
128
129
128
130
129
128
129
129
129
130
130
129
130
129
129
131
130
130
129
130
130
131
129
130
129
130
129
130
128
128
129
128
129
128
128
128
128
127
126
126
127
127
125
127
125
126
126
124
125
125
125
126
126
124
124
125
125
123
124
124
123
125
121
122
124
123
123
123
123
124
124
124
123
124
124
124
126
124
123
126
125
126
124
126
126
125
126
128
128
127
127
128
128
128
127
127
127
126
128
129
127
128
127
128
127
127
127
128
126
127
127
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
128
129
129
127
129
129
130
130
129
129
130
130
129
129
129
130
130
130
129
129
128
130
130
129
129
130
130
129
128
128
129
129
128
128
128
129
128
128
128
128
127
128
127
126
126
128
127
126
126
127
126
126
127
127
127
127
126
126
126
126
126
127
126
127
126
127
125
126
126
126
127
125
126
127
127
126
126
126
127
126
126
126
126
126
127
126
126
128
126
127
127
125
127
127
128
127
126
127
127
127
126
126
128
127
126
127
127
128
127
126
127
127
127
128
127
126
127
127
128
127
126
128
128
127
126
127
128
128
128
127
127
129
128
128
128
128
128
129
128
127
128
129
128
128
128
128
129
128
127
128
128
128
128
127
127
128
128
127
127
128
127
128
128
126
127
128
127
127
126
127
127
128
126
127
127
126
127
126
126
127
127
126
126
126
127
127
127
126
127
127
128
127
127
128
128
127
127
127
128
128
128
127
128
128
129
127
127
127
127
128
128
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
126
127
127
128
127
127
127
128
127
127
127
128
128
127
127
127
128
128
127
127
128
127
128
127
127
127
127
127
128
127
128
127
127
127
127
128
127
127
126
126
127
127
127
126
128
127
127
127
128
126
127
128
127
127
127
127
128
127
127
127
127
127
126
126
126
128
127
126
127
127
126
127
126
125
126
126
126
126
126
127
127
126
127
126
127
126
126
125
126
127
127
126
127
126
127
127
127
126
127
128
127
128
128
127
128
127
128
129
128
129
129
128
129
130
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
129
129
130
129
129
128
128
129
129
129
128
128
129
129
128
128
127
127
127
127
128
127
127
127
127
126
128
129
127
125
125
126
127
129
127
125
125
125
124
123
126
127
127
129
129
127
126
127
126
125
128
129
126
124
124
126
124
124
124
126
128
127
127
126
125
124
124
124
126
128
127
126
126
126
127
129
127
126
130
132
132
129
122
121
125
129
125
123
129
130
127
125
131
135
130
130
131
126
128
135
132
120
123
138
130
123
136
129
117
131
133
110
120
140
124
121
136
127
115
125
127
120
127
137
128
122
131
130
127
132
125
121
131
138
130
126
125
126
127
127
133
132
126
125
127
126
119
121
128
128
127
128
128
130
132
126
126
127
117
123
135
126
118
129
137
127
122
129
135
125
127
136
123
115
135
143
126
126
138
121
114
135
134
115
125
135
116
124
144
127
114
131
129
118
134
138
116
120
134
127
122
134
135
122
125
133
121
118
134
135
123
127
126
126
130
125
125
121
122
130
140
129
126
134
133
119
127
131
127
127
137
123
118
129
137
125
129
124
124
134
128
120
123
129
125
127
134
129
125
126
128
124
128
127
124
121
127
129
133
128
127
124
128
127
128
125
127
125
127
126
127
127
126
123
127
127
123
124
126
125
127
129
127
129
126
123
124
131
126
126
128
130
127
132
132
126
122
131
129
124
122
126
125
130
131
127
122
132
130
125
126
129
122
124
129
129
126
129
132
127
129
132
128
122
128
126
125
130
127
128
130
130
123
130
130
124
121
126
125
131
132
128
126
128
125
126
128
124
122
129
130
128
130
126
125
125
126
122
130
126
125
129
132
123
127
128
127
123
126
124
127
127
130
127
128
127
131
130
132
127
130
131
130
122
123
122
125
140
136
121
134
134
120
134
134
117
120
132
142
129
126
132
122
127
122
121
119
124
130
125
122
130
119
127
129
121
121
126
126
129
118
129
132
128
124
122
131
124
120
134
130
122
126
135
131
132
134
121
117
127
127
134
126
114
120
131
134
123
117
122
122
129
126
114
132
144
120
119
135
138
136
132
121
103
130
143
126
119
126
136
128
128
133
112
127
152
125
114
145
151
125
127
130
114
125
143
130
104
116
151
128
106
129
126
124
151
131
116
143
143
120
114
123
111
122
136
129
127
121
135
114
98
130
114
132
129
95
138
159
123
122
132
127
112
125
139
136
129
129
134
120
123
148
123
109
117
115
125
149
144
111
123
143
111
119
138
140
133
122
132
128
126
147
131
108
111
119
125
137
144
119
120
148
120
111
135
141
140
123
117
128
125
133
140
122
104
118
120
122
144
124
116
140
136
110
124
134
137
130
118
125
123
122
144
139
104
108
126
122
139
140
111
124
144
122
125
132
142
129
116
126
124
129
149
129
97
120
133
127
147
128
114
135
138
111
118
131
141
138
114
115
129
127
144
139
105
109
134
129
137
137
111
129
146
120
121
129
139
147
122
108
125
124
136
149
119
101
129
130
129
144
113
119
141
133
117
122
131
145
131
109
118
125
123
150
134
100
116
129
129
147
124
115
132
142
121
119
127
142
137
117
114
123
118
144
148
108
103
124
126
142
140
110
126
144
129
116
123
137
142
128
112
119
122
128
157
127
97
119
123
134
150
114
117
137
137
117
125
134
141
137
118
113
124
122
151
147
103
112
125
126
148
136
112
127
139
124
121
131
141
140
122
115
123
118
133
159
114
101
126
123
136
149
117
123
133
133
121
125
135
143
132
113
118
124
118
157
135
97
118
122
125
149
130
117
127
139
121
119
131
138
119
112
124
117
137
157
106
103
127
117
137
149
116
121
134
131
116
126
142
145
127
110
121
126
120
157
130
98
122
123
124
152
128
118
129
134
118
120
135
145
135
115
116
127
118
142
153
103
109
127
118
140
145
116
126
132
127
119
127
142
141
123
113
123
124
125
159
121
100
128
120
124
155
123
123
129
133
119
123
137
144
132
113
116
127
117
147
144
102
115
125
141
142
121
127
130
128
121
127
139
144
122
111
128
124
126
160
120
101
127
119
127
153
126
127
127
136
122
123
130
149
139
106
121
130
114
154
145
95
116
126
115
145
138
118
125
132
125
119
124
142
153
110
110
131
116
134
163
105
102
131
118
130
149
118
128
128
132
120
122
132
157
126
101
126
128
117
161
130
94
122
125
119
148
130
124
127
133
126
121
126
150
145
108
133
120
129
163
111
100
131
119
126
148
122
130
126
135
123
123
136
156
129
101
122
130
114
158
136
93
120
129
119
144
133
124
127
129
128
123
131
147
146
105
110
132
118
136
155
102
106
132
120
130
144
119
132
122
130
124
130
136
150
125
102
123
128
119
160
122
97
129
126
116
147
129
124
124
132
127
127
133
145
142
104
111
134
116
144
147
98
115
133
117
134
142
122
131
124
134
125
130
139
152
117
102
128
125
123
160
112
103
133
121
123
148
124
130
120
132
127
129
132
147
136
101
115
133
113
152
137
97
120
129
115
141
138
123
126
126
134
128
131
137
152
113
104
131
120
132
159
103
104
133
120
126
148
121
128
119
136
129
131
128
153
135
96
118
133
117
158
126
99
126
130
119
141
130
126
128
128
133
133
128
140
154
106
103
123
135
153
106
113
132
119
124
143
122
132
120
131
130
133
127
154
130
93
117
130
117
158
122
101
123
125
118
140
129
127
123
124
133
136
121
142
152
98
105
133
116
144
148
100
111
134
120
129
143
122
130
118
133
140
125
126
160
120
96
125
128
125
160
116
105
127
127
121
144
125
131
121
125
141
135
114
154
145
95
109
133
118
153
140
102
114
134
119
135
144
108
142
120
130
145
115
153
136
90
122
132
121
159
121
108
128
121
123
146
119
119
147
104
125
165
102
140
154
88
116
132
115
152
134
112
135
107
124
151
116
127
148
101
128
159
116
137
144
108
123
107
127
147
128
130
132
100
131
136
121
135
127
120
130
129
140
131
125
138
119
93
134
132
125
150
117
106
133
117
130
141
111
134
127
110
156
129
113
156
117
97
131
121
124
158
112
115
130
111
135
139
112
141
122
107
159
127
111
163
122
106
128
110
130
156
123
122
126
109
135
136
115
138
127
106
151
136
112
151
135
112
125
105
126
141
139
129
120
114
133
132
126
132
123
113
136
136
122
134
138
128
122
104
117
131
134
145
118
113
131
130
129
133
124
120
127
133
124
129
140
133
123
122
102
124
138
138
129
119
117
130
133
125
131
124
119
134
122
134
133
128
133
115
101
135
134
131
135
121
121
134
133
132
125
123
122
125
132
130
129
131
125
126
122
116
128
132
126
125
128
129
128
135
132
125
128
125
125
129
130
124
130
127
121
126
129
126
126
130
123
119
126
130
125
145
136
114
132
129
127
136
106
121
146
107
115
153
123
104
139
143
103
123
152
122
110
136
140
115
135
139
113
130
138
134
131
124
122
137
125
129
125
114
132
147
115
100
131
124
124
130
123
133
132
118
118
123
124
140
138
124
118
127
134
143
125
123
136
138
130
117
116
127
131
130
125
129
134
122
117
124
123
135
133
129
115
124
137
138
126
118
132
149
130
107
108
124
129
133
124
129
138
123
113
122
117
131
135
130
118
121
136
139
128
114
129
152
133
119
110
123
133
138
126
128
139
130
119
126
119
125
138
140
124
116
135
139
130
122
116
135
147
125
108
119
126
134
120
129
151
129
119
128
117
112
137
139
126
116
130
138
138
116
111
137
144
124
110
115
127
127
124
125
137
127
119
123
115
108
135
137
130
119
129
141
132
123
118
131
152
135
116
113
130
131
124
125
138
132
124
124
116
113
135
137
128
120
119
138
145
127
115
133
155
139
120
110
127
127
124
128
132
135
126
112
113
131
135
134
119
115
138
140
131
114
106
151
156
120
115
119
113
126
132
142
140
133
124
100
112
130
136
133
130
114
128
151
133
115
113
133
153
142
119
107
118
123
126
134
154
127
124
110
96
121
141
131
132
121
120
144
142
121
114
128
151
142
137
111
123
121
123
125
151
134
122
110
97
117
130
133
137
115
120
142
140
123
119
120
152
148
131
116
124
120
121
131
152
128
120
101
106
128
131
133
132
115
126
146
136
118
119
136
156
139
126
115
123
120
125
126
154
136
123
105
99
121
134
131
135
119
115
140
141
118
118
129
152
143
133
112
121
120
128
119
145
147
121
111
101
121
127
121
141
123
112
139
141
120
122
126
145
149
136
117
120
120
123
120
140
158
124
115
105
111
131
129
136
128
116
127
145
128
120
126
138
151
138
123
118
124
123
121
126
160
131
119
113
105
126
129
130
134
121
117
142
133
115
124
132
151
144
128
111
127
117
117
124
153
141
121
112
103
121
128
127
138
119
111
137
141
118
123
127
146
145
129
118
124
116
121
119
145
154
120
116
109
113
127
127
138
127
122
124
141
126
116
129
141
144
135
122
120
125
118
119
138
162
125
119
111
109
134
124
133
132
121
122
140
127
125
134
150
136
125
124
127
115
120
125
159
142
115
115
108
121
129
128
134
122
117
131
136
114
121
132
146
138
125
121
131
116
119
122
147
153
118
118
110
113
130
127
137
125
120
126
140
123
115
130
142
142
133
127
125
124
118
119
138
161
121
118
112
110
130
117
136
134
118
119
139
124
115
133
134
144
133
126
127
127
113
121
126
160
135
112
117
112
123
123
131
132
122
130
134
114
124
136
141
134
128
129
128
118
118
121
149
153
114
117
115
116
129
126
136
124
119
126
139
118
119
136
137
139
132
128
130
126
115
119
141
160
123
118
118
112
129
123
136
129
119
121
135
124
116
133
135
139
129
130
130
126
117
120
128
159
132
114
123
114
122
124
129
131
124
120
130
133
112
128
136
137
133
132
131
128
116
115
123
153
146
115
118
117
126
122
136
126
123
121
135
124
115
136
137
132
128
133
130
123
117
115
127
164
132
111
121
118
122
120
135
130
122
121
133
132
109
131
140
135
130
129
129
128
115
117
125
155
143
114
117
117
120
121
131
134
122
123
126
137
113
122
139
136
132
130
131
130
120
116
118
147
156
116
118
121
115
122
123
137
126
125
124
135
117
114
139
136
134
130
130
133
124
116
116
134
164
128
112
121
114
120
120
137
127
123
122
132
128
106
131
142
134
130
132
133
128
118
115
123
163
145
112
123
120
115
121
136
130
123
125
126
135
110
122
144
135
132
132
132
130
121
114
117
151
155
115
119
124
115
119
127
135
123
124
123
134
116
111
141
136
131
130
134
131
122
114
113
139
165
124
115
126
114
118
125
137
124
125
121
130
124
105
135
141
130
130
133
131
115
113
125
160
144
115
124
122
118
119
134
128
125
126
124
134
109
118
146
134
128
132
134
129
122
113
116
152
158
117
119
125
118
119
128
133
122
124
121
133
117
109
143
137
128
128
136
131
125
117
114
136
163
127
114
127
120
117
123
135
123
125
122
129
126
105
134
144
130
127
135
131
126
118
113
127
161
141
113
124
123
118
119
137
125
124
125
125
133
108
123
146
126
130
136
128
122
114
115
144
161
121
117
127
119
117
124
134
123
127
122
129
122
106
139
144
127
126
137
130
127
118
111
134
163
133
115
127
123
116
120
135
122
126
126
126
129
106
130
146
131
127
135
135
129
119
109
123
159
149
112
123
126
118
116
133
127
122
128
122
132
112
114
145
139
124
129
139
131
121
114
119
146
155
120
120
130
120
115
126
131
120
129
122
127
120
109
140
141
126
127
138
133
125
112
112
138
163
130
115
129
124
118
120
135
122
129
129
121
125
109
130
145
131
123
137
134
128
118
108
124
158
143
112
125
129
117
114
133
122
123
129
121
129
110
118
145
137
123
135
136
127
122
110
119
151
153
119
121
132
122
113
130
129
122
130
123
125
121
114
139
143
126
128
141
130
126
110
113
143
157
129
118
132
126
112
123
121
129
130
120
126
113
128
145
132
124
140
132
126
115
109
131
157
140
113
126
133
116
114
133
123
125
130
119
125
119
121
142
138
119
134
137
127
121
108
122
150
152
118
121
134
120
111
127
129
122
131
126
121
122
115
135
144
125
128
141
131
126
109
116
142
157
128
114
131
128
111
123
131
116
133
130
117
127
119
130
144
131
125
136
133
129
109
107
138
154
138
116
135
118
110
126
120
128
135
120
121
126
119
137
142
122
127
140
130
127
106
116
147
156
117
114
138
126
108
125
129
120
133
129
120
127
117
129
145
134
123
143
134
123
114
118
130
155
136
108
133
126
115
123
127
127
131
124
120
132
113
118
146
134
119
132
134
129
112
101
137
151
140
114
126
137
116
114
126
127
133
130
123
129
133
130
126
133
131
129
135
127
119
112
130
146
148
114
133
147
106
107
118
131
127
139
135
124
134
128
127
123
119
128
140
124
123
117
121
132
144
116
106
140
138
115
108
120
126
135
138
127
120
130
133
117
127
128
134
122
123
120
125
143
136
132
109
132
139
107
121
135
132
131
131
133
142
132
125
123
123
126
139
127
112
115
120
137
137
141
115
125
131
109
121
124
117
138
150
133
118
134
144
133
119
119
134
115
120
113
112
137
150
126
107
130
131
116
115
119
126
143
123
114
137
138
124
120
131
137
132
119
120
132
123
132
141
128
104
131
134
119
113
123
145
133
124
112
129
140
133
129
139
129
139
147
143
122
108
140
152
136
109
112
137
118
119
123
125
126
122
134
127
111
118
124
123
117
134
151
123
122
118
137
136
130
130
119
130
122
119
110
112
132
134
118
123
128
136
117
122
126
134
135
129
129
114
128
137
144
137
124
124
125
130
119
136
133
115
122
138
138
125
120
131
144
133
128
122
124
119
123
137
140
120
125
138
128
117
112
129
137
128
114
126
131
120
123
126
131
135
136
125
131
112
108
133
130
119
131
138
136
121
105
133
143
116
133
124
123
132
136
124
120
136
140
124
127
126
124
140
138
137
97
117
148
122
143
148
116
129
114
123
126
119
133
131
108
141
152
112
105
114
117
127
132
151
131
120
129
114
124
117
115
148
149
108
130
132
131
136
126
137
138
115
126
123
112
113
128
139
141
128
129
151
136
103
109
123
120
118
136
158
127
120
131
123
130
120
131
109
104
143
140
141
133
115
131
141
131
112
128
151
117
111
110
122
129
122
152
138
107
128
118
134
131
114
145
137
129
137
129
120
111
131
134
130
127
154
134
114
110
120
123
116
138
152
110
126
133
126
139
124
130
128
122
138
127
113
113
122
129
129
129
122
144
137
114
109
120
117
115
132
153
124
123
135
120
136
128
129
134
115
129
138
126
116
116
131
135
128
121
136
152
123
116
112
123
128
125
159
143
109
138
127
123
123
118
139
125
124
139
129
123
112
117
129
133
135
121
141
129
105
112
124
123
140
162
119
120
123
121
143
122
134
126
119
141
132
122
118
124
130
123
128
120
140
141
121
115
110
131
125
120
150
127
120
134
117
137
129
127
130
118
127
145
134
113
101
125
133
133
124
141
145
120
122
117
120
117
124
156
138
111
135
123
126
134
123
136
128
123
130
121
125
111
119
140
131
127
138
155
122
105
113
126
122
113
143
155
114
123
122
120
141
122
126
115
141
147
129
123
115
136
144
129
114
134
151
119
113
115
131
120
121
151
131
110
137
113
126
133
114
133
128
130
142
130
125
111
123
133
126
127
129
153
131
116
112
128
117
116
152
149
107
130
121
118
140
126
127
121
121
147
132
117
108
121
138
127
125
134
148
133
118
114
125
122
111
139
149
115
123
133
118
135
132
125
121
113
132
143
127
109
113
140
138
121
124
143
142
120
120
116
119
121
140
153
132
118
138
121
130
127
116
129
120
127
139
131
118
103
124
132
127
134
139
137
118
109
122
130
106
129
155
146
117
134
115
119
150
128
121
121
126
144
137
117
104
129
141
122
121
131
140
126
119
118
119
113
130
141
138
115
133
125
110
139
142
123
118
122
131
145
139
109
104
130
142
127
129
144
135
118
125
130
105
114
146
154
124
124
131
131
148
122
121
131
141
136
130
112
111
123
137
124
123
143
143
120
112
121
113
110
133
140
135
121
133
111
117
149
133
115
113
123
148
145
119
104
120
137
135
120
132
134
130
117
119
113
109
135
138
136
123
133
128
109
138
137
119
124
126
135
151
135
108
111
136
138
119
142
142
129
124
125
119
102
127
140
147
132
123
130
112
133
150
122
116
121
134
150
135
106
105
143
125
116
142
140
126
117
124
108
116
133
137
131
127
128
123
112
135
140
120
116
122
135
148
122
106
106
137
140
117
134
138
130
125
122
116
112
131
144
139
137
132
121
117
140
140
117
110
138
145
129
124
122
115
127
128
116
140
163
120
110
120
129
122
126
129
139
133
137
128
99
120
148
138
117
112
137
136
130
130
104
114
148
125
121
136
131
121
120
122
115
131
135
138
126
127
135
115
115
134
138
126
115
132
131
127
143
126
98
111
127
139
154
119
108
128
137
116
118
125
141
141
133
128
111
119
135
139
130
110
137
150
133
119
112
124
140
126
123
148
142
122
130
123
109
125
138
133
124
126
138
118
108
118
138
151
117
109
126
144
143
114
104
125
139
123
142
144
106
124
137
112
100
123
142
135
120
121
120
131
128
118
122
122
128
133
136
132
120
127
144
117
121
158
135
116
120
126
115
128
127
127
138
146
121
102
114
136
142
126
114
132
150
145
134
107
117
144
132
117
134
136
128
122
121
100
122
151
135
115
112
134
126
110
120
128
133
127
136
134
126
138
127
116
119
121
133
143
129
114
124
146
116
103
119
134
145
125
124
125
120
128
136
132
113
128
158
141
127
111
129
149
118
99
135
155
132
116
108
112
139
130
126
129
139
140
118
111
128
143
139
121
116
133
150
129
102
121
146
129
129
142
135
118
112
129
106
124
136
139
148
111
122
115
107
117
120
143
126
123
139
125
133
113
112
131
122
131
148
131
128
121
132
113
117
124
126
137
117
126
136
130
141
143
126
112
127
134
136
147
132
127
142
114
58
124
135
135
163
137
210
143
160
178
124
107
119
109
30
86
50
74
161
174
119
108
107
108
21
123
131
92
217
107
110
154
128
155
157
179
153
217
145
159
124
186
106
179
182
135
71
107
161
82
151
114
151
86
113
59
92
136
115
87
135
125
149
145
81
82
108
82
123
121
122
80
91
80
76
114
159
148
153
158
175
162
180
206
209
197
191
169
114
116
167
194
173
115
58
111
132
44
88
100
121
94
134
125
100
91
77
121
84
53
58
82
134
149
133
130
123
160
198
155
145
151
159
150
133
135
159
149
150
145
151
145
146
172
192
139
174
177
116
106
129
76
69
92
74
68
74
67
109
105
115
111
110
74
78
132
93
109
140
125
113
106
103
97
121
139
169
169
177
187
167
171
175
204
182
194
175
140
149
155
157
128
79
128
122
115
92
80
93
112
99
121
107
91
61
85
72
88
91
142
139
138
110
117
157
150
139
160
138
133
153
140
132
129
138
164
112
137
149
146
154
160
158
179
195
161
140
115
116
116
136
124
111
110
102
67
84
120
80
62
79
83
68
105
102
89
85
134
127
124
121
137
150
170
153
164
180
172
142
141
151
172
173
183
154
132
141
133
102
129
100
117
138
118
107
131
118
112
136
118
130
125
117
127
108
98
95
86
108
113
93
84
98
94
115
131
146
124
126
100
111
136
144
142
143
129
122
135
172
169
156
153
163
165
136
140
126
166
161
170
142
155
129
87
106
115
108
91
106
123
133
118
99
97
120
104
90
111
64
84
95
114
112
104
122
117
128
98
134
150
147
203
145
169
176
109
153
144
169
145
140
161
145
155
150
109
165
155
140
152
116
113
125
127
120
141
117
111
97
111
89
92
129
109
100
114
117
87
95
109
100
108
105
124
113
111
103
126
141
119
129
138
143
147
159
174
168
166
170
160
141
124
152
139
131
168
129
135
129
82
106
97
101
117
135
110
122
122
113
105
129
120
106
118
94
80
111
134
141
129
121
133
130
110
98
141
147
172
158
155
157
132
125
137
122
131
148
142
144
148
134
113
132
154
129
122
142
150
119
142
131
125
134
120
132
100
82
100
121
134
139
120
118
101
117
126
116
127
125
143
162
155
130
116
142
135
115
141
117
102
118
142
120
117
140
128
126
100
125
115
127
154
130
144
148
112
102
102
115
120
128
121
126
132
136
116
104
137
124
122
146
124
117
132
137
128
151
149
153
118
105
132
129
147
147
135
149
141
117
124
115
121
135
133
120
124
131
117
107
121
106
88
117
101
83
116
115
112
138
120
140
125
112
133
152
144
147
135
171
147
140
135
139
141
132
150
159
155
149
126
128
157
130
116
150
116
105
118
100
102
107
109
98
103
65
106
96
107
130
127
128
138
120
128
120
116
116
129
134
143
160
132
112
137
139
130
143
136
118
120
144
145
164
150
157
152
116
112
141
135
153
145
140
140
124
120
125
122
119
124
109
133
120
118
95
100
119
86
97
113
96
91
110
103
109
123
114
121
119
106
125
141
157
166
142
184
157
146
138
135
153
154
149
162
154
150
143
109
138
129
121
131
128
116
124
137
115
125
128
126
124
91
93
110
99
127
122
108
122
101
99
104
91
112
125
128
141
135
150
116
136
152
122
141
162
141
136
150
150
146
157
160
169
156
120
128
137
133
142
131
138
117
112
100
89
95
115
113
130
125
129
106
104
131
98
125
126
99
113
115
112
128
136
130
133
113
105
140
136
142
145
139
153
134
120
125
130
151
132
146
149
156
144
122
128
142
120
137
144
130
110
134
138
123
128
129
125
116
80
117
119
113
116
106
123
121
108
111
101
102
117
123
126
149
148
120
129
158
129
131
153
157
132
130
142
134
145
151
128
134
106
90
122
115
127
127
125
136
116
122
129
114
123
109
121
141
138
113
117
133
125
130
149
146
122
133
150
118
134
152
156
142
95
125
127
123
145
112
140
140
116
106
99
99
108
118
119
136
133
124
99
128
116
101
124
154
116
103
143
125
131
142
141
150
141
102
125
119
135
143
134
136
123
130
132
114
136
130
133
151
166
159
122
133
144
114
121
132
120
108
112
123
118
130
124
133
129
96
111
118
112
129
127
143
131
117
128
119
119
119
126
138
144
151
135
124
128
139
123
143
145
121
104
131
133
128
145
130
127
119
95
119
122
139
138
135
140
126
115
111
102
115
118
107
120
140
131
111
126
142
124
139
160
139
121
131
142
136
142
128
133
134
100
119
130
120
147
141
137
136
124
123
115
117
127
118
126
137
140
117
120
127
133
106
133
133
123
119
126
129
127
135
138
128
115
81
120
124
128
130
130
130
124
124
121
137
129
135
141
156
143
119
132
134
113
119
147
130
112
116
128
135
142
133
143
133
107
104
116
121
135
120
133
130
112
122
119
116
127
119
138
141
133
131
139
134
116
112
135
131
118
116
131
131
142
145
137
132
115
97
111
121
143
138
132
142
116
116
138
125
113
112
145
146
136
133
125
129
123
112
119
109
109
126
118
120
130
141
126
141
122
90
98
134
142
127
143
143
113
130
139
119
129
128
148
140
141
138
141
131
121
113
121
126
126
124
126
127
142
138
130
137
113
98
129
124
117
128
118
134
112
112
129
113
119
129
145
149
133
131
135
125
120
120
126
131
124
141
132
132
134
142
144
127
128
108
105
123
115
129
118
132
133
112
127
121
120
126
137
147
134
137
138
130
135
120
112
125
120
131
132
120
111
138
130
120
132
115
83
120
123
120
155
134
136
131
113
118
130
141
138
134
148
125
140
146
134
116
117
122
147
147
130
115
113
120
149
136
118
120
104
117
128
118
133
120
124
135
121
117
119
135
132
115
120
127
130
144
127
117
120
110
127
125
126
136
133
130
147
145
124
121
124
103
120
120
127
136
121
132
126
124
134
132
137
151
127
129
140
136
141
147
131
126
118
123
120
107
115
124
134
119
134
124
104
108
128
123
136
143
114
113
128
141
141
135
145
121
131
144
144
118
116
139
145
141
140
126
127
124
129
123
127
128
125
144
113
98
110
115
118
142
125
106
118
120
114
114
126
128
122
143
144
124
109
130
131
108
128
145
127
143
140
138
127
146
146
132
128
130
116
124
119
138
142
127
132
121
116
129
138
129
91
124
142
133
136
124
120
119
144
113
90
121
127
125
135
139
123
122
132
113
93
115
123
145
135
115
130
126
121
140
134
129
132
150
131
113
143
153
143
133
123
135
112
144
139
104
108
147
137
131
141
117
107
124
130
128
123
120
136
127
97
115
128
126
125
124
125
126
146
139
111
118
130
134
144
139
136
127
121
141
120
110
130
121
117
136
121
124
138
135
131
135
120
126
130
119
110
121
125
130
135
128
126
131
129
114
113
137
143
136
126
128
135
136
138
120
80
110
138
118
139
144
125
124
134
127
129
121
119
132
133
123
124
134
124
130
123
118
127
139
124
104
124
130
136
154
144
124
111
129
133
96
126
136
127
136
151
134
133
121
125
118
125
118
130
145
124
114
120
120
125
129
125
125
135
133
107
131
149
131
119
127
131
126
134
150
104
114
141
138
127
138
138
126
127
112
111
120
122
139
129
111
110
134
145
135
115
116
127
159
132
100
102
133
129
152
150
122
133
142
115
105
120
131
139
137
139
127
128
129
123
120
126
117
125
134
133
115
113
131
133
122
119
117
132
107
88
108
122
127
163
153
113
125
129
131
105
119
152
127
136
141
144
130
132
133
121
123
140
125
132
142
140
123
122
131
129
120
135
138
125
100
97
139
130
160
121
115
129
122
115
102
131
127
102
131
140
136
124
128
122
118
136
140
124
133
139
131
110
121
139
132
126
132
144
124
98
124
137
117
143
153
119
138
136
114
107
122
132
113
123
141
137
134
130
126
120
120
136
127
130
128
125
119
117
134
147
118
116
138
127
107
108
120
116
128
155
122
124
140
120
100
129
131
118
129
144
139
142
138
129
126
125
132
132
136
130
132
118
115
135
127
106
124
144
116
109
128
101
116
144
143
113
131
139
102
113
141
118
108
141
135
137
137
136
119
130
141
130
133
145
138
147
119
107
142
141
108
126
153
130
111
142
107
89
139
148
118
120
134
121
97
136
120
91
134
141
132
136
135
123
128
137
129
128
140
140
149
118
106
135
141
111
116
143
131
110
130
119
80
132
150
120
118
134
124
110
125
133
97
132
152
139
130
141
133
129
133
131
127
138
134
146
126
111
131
145
118
110
140
131
120
131
118
83
119
143
117
126
126
115
119
120
120
106
123
150
145
124
140
134
132
137
131
130
142
133
149
127
117
132
141
116
121
134
127
123
135
102
94
117
136
119
135
120
115
137
127
94
124
135
132
154
130
131
135
141
132
129
140
129
134
148
117
120
139
126
114
134
129
123
142
90
114
117
116
130
133
112
117
148
122
83
130
136
128
145
130
124
141
149
132
132
143
124
148
144
115
136
135
111
133
137
119
133
144
98
109
134
99
112
139
115
108
130
137
106
98
137
131
127
137
129
119
143
143
128
139
131
134
149
121
121
145
113
119
146
124
122
147
118
95
143
130
90
127
135
108
133
130
107
115
126
127
141
124
130
126
129
139
137
136
129
132
129
119
134
132
112
133
132
125
137
137
111
116
148
117
101
125
119
119
144
112
103
137
129
129
131
122
124
135
136
133
141
146
126
143
128
120
137
124
122
143
124
128
134
128
121
119
135
133
107
110
117
135
128
117
111
138
136
123
124
125
108
140
136
120
142
143
127
141
128
121
131
126
128
130
135
134
117
122
133
121
118
145
117
96
120
143
108
119
140
128
139
129
106
121
115
135
138
120
134
136
147
123
123
133
117
132
138
126
144
134
114
123
139
117
114
154
118
93
131
133
96
119
158
137
137
126
109
106
137
131
126
133
124
147
151
118
129
121
120
135
137
142
136
122
126
134
129
112
122
141
117
123
120
97
109
128
150
149
122
126
101
107
143
117
129
129
129
148
129
130
127
124
130
125
150
146
118
132
134
130
131
126
118
121
140
96
91
125
127
156
142
120
122
100
121
136
122
119
128
147
124
126
135
125
129
127
139
140
119
132
136
128
130
134
122
109
132
155
111
83
113
134
133
146
140
111
107
129
118
125
126
122
144
130
126
130
129
126
133
149
138
112
131
133
125
141
142
128
108
130
152
117
95
109
116
144
128
143
132
104
124
123
117
126
117
143
132
127
124
122
126
130
152
144
108
127
134
133
143
135
127
124
142
133
106
115
112
124
133
126
145
116
117
133
112
116
126
136
126
129
138
118
111
129
153
146
121
125
123
124
147
138
126
127
131
138
127
115
121
122
118
126
123
127
128
123
126
121
116
121
141
119
126
147
116
108
132
148
140
126
134
120
128
145
136
127
124
137
133
115
120
130
123
128
113
124
119
119
134
123
117
121
112
141
118
121
149
119
100
132
161
140
122
140
121
120
153
141
122
118
148
140
101
115
134
123
135
112
121
121
111
140
123
115
126
108
136
121
120
147
121
103
130
157
143
128
140
119
124
151
134
130
125
144
140
101
121
135
127
137
108
119
128
110
144
133
119
125
116
123
121
117
135
124
110
129
155
140
127
138
123
123
148
134
129
121
142
148
95
113
137
131
135
114
114
122
105
135
138
116
124
126
116
121
131
117
113
137
151
139
132
135
123
126
147
133
130
128
139
148
98
107
138
131
134
123
111
116
109
125
138
120
126
128
123
114
123
129
114
115
141
152
136
139
131
118
132
143
128
131
124
132
150
108
102
133
138
141
122
118
116
111
123
139
125
122
128
131
113
123
132
108
107
144
154
133
137
136
120
131
143
123
124
124
135
150
113
102
135
136
142
125
125
104
122
132
131
129
122
132
118
114
129
120
98
126
157
145
127
142
125
124
143
133
123
122
124
150
131
96
121
136
140
138
123
115
108
116
126
132
128
123
133
131
107
116
133
104
113
154
152
126
141
137
117
132
144
124
127
120
141
154
102
106
138
134
144
131
118
103
122
121
128
127
124
128
144
115
96
128
120
99
143
157
128
130
152
118
113
146
137
123
123
125
156
133
93
126
134
133
145
136
99
114
134
123
126
115
126
137
133
109
103
124
122
115
143
144
124
145
150
106
118
149
136
119
126
138
146
120
111
122
133
130
144
123
101
136
137
128
115
113
137
138
114
121
111
110
147
121
125
138
135
141
142
107
116
148
142
113
137
136
119
142
119
104
132
134
126
119
124
126
135
140
103
116
134
132
112
123
116
108
149
144
103
127
150
133
125
120
128
139
144
133
123
112
145
137
105
117
133
107
124
144
118
132
140
126
112
125
117
120
122
121
125
134
153
129
103
147
134
116
139
144
110
125
158
137
107
132
129
127
133
112
108
114
130
134
139
139
119
139
138
106
100
117
125
124
131
142
124
131
143
113
115
128
133
136
133
132
125
129
138
136
124
129
119
128
110
108
129
129
140
141
136
130
139
130
97
102
121
142
143
125
125
140
147
110
103
132
127
125
153
130
99
133
150
131
122
122
117
110
123
117
117
135
134
134
149
140
114
121
126
95
111
148
137
123
136
146
130
133
136
105
112
129
140
134
123
130
132
140
136
126
120
107
111
134
117
119
134
133
142
138
131
113
123
133
113
113
137
121
134
149
127
128
139
142
110
100
137
123
114
138
141
130
128
141
137
109
107
130
111
138
129
124
137
136
121
126
133
122
130
130
117
122
130
134
141
131
133
139
129
115
116
120
113
120
137
148
134
122
138
129
101
120
126
110
135
133
118
132
135
118
122
139
128
123
139
129
105
130
140
135
137
135
137
129
130
123
100
117
123
122
149
140
124
124
131
119
115
122
114
123
139
122
125
130
125
121
129
134
125
126
145
122
108
134
137
135
141
133
128
136
134
104
104
133
117
132
147
133
128
128
134
112
113
122
122
132
135
114
132
136
117
116
129
138
129
137
135
110
117
141
132
142
138
128
138
136
120
99
115
129
119
139
143
134
124
132
131
108
114
127
117
135
133
111
129
131
122
119
130
137
125
134
127
115
122
135
136
149
129
131
138
134
111
96
133
123
119
144
142
135
128
138
122
99
121
125
116
136
127
122
136
131
122
114
136
125
136
127
112
125
135
143
146
123
127
140
139
107
99
124
115
128
154
139
127
124
143
124
92
116
121
119
148
126
123
135
132
125
117
131
128
128
141
120
113
131
137
145
141
128
132
138
126
98
108
127
119
142
145
133
128
130
136
116
91
121
122
118
146
126
121
138
138
123
119
137
123
133
139
114
113
137
143
150
134
125
131
136
123
100
112
123
125
150
138
128
135
143
118
91
118
125
113
143
138
114
133
144
127
115
130
124
124
137
122
111
131
140
147
135
130
132
130
122
104
112
113
122
149
142
127
130
142
136
115
95
118
122
118
139
139
120
136
146
132
116
126
125
130
135
110
111
136
147
148
133
125
132
131
114
99
111
115
129
159
137
125
131
146
133
110
102
116
122
123
133
136
124
134
145
136
121
120
122
129
130
106
118
141
143
145
138
128
125
122
114
109
113
116
137
156
132
124
133
146
132
111
107
112
119
125
126
134
132
133
143
144
121
110
122
132
125
109
126
139
146
141
132
128
125
124
118
112
112
113
138
151
130
122
139
147
132
113
113
109
117
124
128
137
134
132
144
139
122
111
120
130
124
109
127
134
142
140
134
130
127
119
117
113
110
108
141
152
134
120
141
149
132
115
121
106
129
126
128
138
126
145
147
130
111
115
133
125
105
123
133
142
137
141
135
117
118
123
113
107
106
137
155
135
121
138
144
140
118
123
106
112
128
128
129
136
128
145
146
130
113
111
135
128
105
122
138
139
139
142
131
117
120
125
112
103
109
133
153
137
121
133
144
134
121
123
107
112
129
129
124
137
129
142
146
129
114
112
130
129
114
116
136
138
145
139
130
119
127
122
105
100
119
147
148
128
123
139
140
131
123
114
105
127
123
127
138
133
135
151
137
116
112
125
130
124
112
125
137
146
142
135
124
118
127
127
109
97
112
139
150
130
121
134
142
135
128
116
106
122
120
130
135
132
131
149
139
120
112
126
129
125
115
120
137
141
146
134
119
123
130
128
113
97
108
132
150
133
120
129
147
133
132
118
104
123
118
127
136
132
131
147
144
120
113
126
128
128
118
117
138
140
147
134
119
124
132
127
117
99
103
129
152
132
117
128
147
133
132
121
107
119
120
126
130
134
133
144
145
125
111
122
129
130
116
118
138
136
147
132
119
124
130
127
118
103
107
124
150
132
117
130
150
137
130
125
112
115
120
123
124
135
138
142
148
130
118
119
127
132
111
117
136
135
145
132
125
128
128
126
115
102
107
146
138
122
129
142
141
129
126
119
101
117
125
118
129
146
143
147
141
128
112
126
132
105
117
134
136
146
131
129
130
124
122
107
104
114
134
146
122
115
139
138
145
130
124
123
100
117
128
109
125
149
146
140
142
137
109
125
131
101
120
129
133
144
132
131
132
128
121
107
116
113
131
141
124
120
141
140
142
134
129
123
97
113
126
111
126
150
151
140
148
136
106
131
106
116
124
135
141
139
134
130
125
117
107
116
113
128
136
126
124
138
139
135
136
133
123
98
110
125
114
124
145
152
143
153
138
107
119
118
113
120
122
137
139
140
134
127
121
107
118
117
114
130
135
120
135
140
134
133
144
131
115
98
118
122
117
130
149
150
149
156
125
108
120
114
120
120
127
133
139
142
129
121
112
107
125
115
122
133
126
126
141
135
126
141
141
122
107
107
117
121
121
135
149
147
153
147
115
113
117
117
119
120
131
132
144
139
122
116
106
120
119
117
127
132
122
139
139
128
132
150
132
114
106
110
121
124
126
140
151
150
154
134
112
112
112
124
117
128
132
136
148
133
119
106
109
125
115
126
133
123
133
144
136
126
140
139
121
109
102
114
127
124
132
149
148
151
148
119
109
112
115
122
119
132
133
143
126
116
101
117
120
118
134
131
121
143
140
132
133
145
129
118
104
104
123
126
124
138
153
147
153
136
111
113
110
118
119
126
135
135
147
138
120
112
103
117
113
130
136
126
130
141
133
140
136
130
124
111
93
122
125
119
130
150
150
145
153
118
112
124
107
113
121
131
143
139
141
129
121
115
104
113
114
132
136
131
130
134
137
151
130
121
126
104
100
135
120
118
158
143
141
147
123
115
128
114
106
120
137
137
139
133
127
130
124
111
104
111
123
139
143
128
121
149
146
128
123
116
100
124
138
129
117
133
141
140
133
115
116
137
121
120
129
129
127
139
137
123
119
135
136
122
118
121
126
133
126
122
127
141
142
126
118
101
103
130
129
124
132
148
146
139
137
102
103
114
118
112
125
137
149
145
137
139
128
113
119
126
126
126
148
142
128
128
128
121
114
120
102
107
140
133
125
138
148
137
140
139
115
120
124
118
129
130
123
131
130
123
121
129
127
126
125
136
140
126
129
134
123
118
131
131
116
110
104
120
122
118
126
135
142
139
145
122
113
129
121
115
130
127
136
145
137
136
126
118
111
111
123
125
134
139
140
135
140
147
125
109
115
103
97
135
145
133
134
149
140
124
132
116
111
125
126
123
121
124
133
135
131
135
123
116
122
130
144
124
120
128
123
128
124
129
132
126
123
122
123
127
116
124
129
133
144
145
144
119
116
127
118
110
113
116
130
140
136
123
119
125
134
127
130
131
126
137
138
142
134
120
123
117
117
111
107
130
137
127
139
154
150
133
130
120
104
119
143
131
119
124
130
128
120
119
111
117
132
131
125
126
131
136
131
137
133
122
127
141
134
116
112
106
121
124
123
133
149
146
143
152
137
115
125
118
99
115
139
137
129
124
123
119
121
123
112
116
134
140
133
128
126
130
127
137
140
120
120
123
129
124
110
123
115
131
139
125
132
135
132
131
140
144
121
128
126
105
116
138
131
127
120
123
125
126
127
113
115
131
136
133
128
126
129
129
139
142
121
125
128
129
127
114
122
117
130
139
129
135
139
135
137
145
125
121
128
113
113
132
130
123
118
116
120
122
121
117
118
135
138
134
128
120
125
126
129
142
131
123
129
125
131
119
123
121
120
141
128
131
138
137
135
137
143
127
120
126
109
108
128
133
125
122
124
126
124
129
121
113
129
135
131
127
120
127
127
130
142
134
128
130
130
133
114
119
118
112
137
134
130
136
139
136
133
141
128
116
123
109
112
130
134
127
125
122
123
130
130
117
113
131
136
131
130
128
129
129
134
138
128
123
124
127
126
114
120
121
113
135
128
123
134
140
134
133
146
136
120
127
115
113
129
136
125
116
119
129
132
129
123
116
133
140
131
126
124
121
131
136
141
132
124
126
125
124
112
116
121
114
140
133
128
140
142
136
133
142
133
121
127
115
113
125
130
125
121
118
127
130
123
120
117
129
135
131
125
123
131
132
138
131
121
125
127
129
120
120
125
113
136
137
129
139
138
130
129
141
141
122
125
113
113
129
134
124
118
117
124
128
126
121
115
132
135
128
128
122
121
130
135
137
132
127
130
130
127
118
121
122
110
133
133
123
134
142
138
132
147
147
120
120
112
109
123
131
128
121
119
126
134
127
116
114
128
130
133
133
126
123
134
136
134
131
127
125
122
121
117
124
117
126
138
127
137
137
136
130
136
147
127
121
121
115
124
129
126
120
116
125
136
128
122
119
128
137
132
132
127
121
134
137
133
130
125
126
122
124
124
118
125
119
124
136
122
130
137
133
128
137
149
132
127
122
108
113
124
125
121
116
122
134
130
127
123
130
133
130
131
125
119
130
137
135
134
126
127
124
126
120
115
124
116
123
141
128
133
136
133
129
138
147
128
121
117
109
118
130
128
122
120
124
135
125
122
121
127
128
131
135
127
122
132
135
130
132
129
126
123
125
123
119
125
119
124
135
125
133
136
135
131
138
148
132
122
119
113
125
128
126
121
118
124
136
129
120
120
128
130
134
133
124
121
131
136
131
131
127
125
119
122
125
118
121
119
120
130
126
131
132
134
131
138
148
133
124
121
115
119
120
127
123
120
136
126
123
126
128
129
131
131
126
124
135
139
133
131
127
125
117
121
128
120
123
126
122
133
128
133
132
130
129
137
148
138
124
121
113
115
122
125
115
112
121
135
130
126
127
127
130
133
131
126
122
132
139
133
134
129
126
125
126
124
120
122
121
121
134
125
130
131
132
131
138
144
133
124
121
112
116
122
128
119
117
125
134
129
127
125
123
130
128
135
131
122
136
133
133
133
126
118
121
124
125
123
128
123
128
130
131
131
129
129
132
145
141
127
124
121
123
121
119
119
124
129
125
118
123
128
134
139
133
122
123
126
137
137
132
124
130
138
126
120
118
117
117
117
125
127
124
140
144
120
122
139
139
130
126
120
123
126
121
115
116
119
118
120
117
126
135
135
133
127
122
132
145
140
133
132
136
145
134
116
115
118
120
123
127
132
134
130
146
135
104
124
144
141
124
131
138
124
120
118
95
98
106
112
123
133
148
137
140
148
125
117
112
119
120
120
137
145
145
129
137
123
100
116
120
141
135
141
141
146
126
124
127
122
120
138
133
151
146
127
120
120
100
116
140
116
106
138
143
147
148
136
115
97
116
129
115
126
137
135
131
137
126
97
98
112
103
126
139
142
138
128
125
129
121
122
114
125
129
124
125
121
119
111
137
127
139
128
137
144
139
137
132
116
121
135
132
149
133
127
141
151
152
123
139
149
137
134
129
127
136
139
124
121
119
111
119
116
99
115
120
122
117
108
100
104
114
112
122
125
132
142
141
128
108
114
123
109
122
125
116
131
140
133
146
138
138
119
129
139
118
149
149
123
155
146
120
120
141
124
120
105
127
159
148
149
142
139
128
129
121
133
151
138
143
112
141
118
239
178
152
113
54
53
99
76
44
77
101
84
76
109
103
116
115
114
93
101
116
106
108
124
92
111
124
127
113
130
118
115
150
189
146
179
184
142
165
156
156
147
173
200
166
193
221
207
204
208
169
176
190
172
157
175
172
153
164
124
124
129
113
107
117
97
114
134
122
93
82
90
89
100
73
78
97
98
103
68
44
65
44
84
62
74
80
62
32
41
50
49
31
28
49
75
110
78
101
106
82
95
111
102
118
145
150
157
165
145
124
146
140
150
162
166
165
164
171
173
180
196
174
177
179
185
203
200
202
205
212
187
189
222
205
214
216
200
208
229
226
226
206
194
183
180
155
137
165
153
138
150
134
95
93
82
97
90
114
96
99
102
75
89
78
70
115
93
92
87
82
86
81
100
77
67
95
90
98
71
69
88
77
68
72
43
66
85
85
81
75
85
96
105
85
57
82
108
93
96
77
92
84
75
106
83
69
116
113
83
109
137
118
104
108
79
79
113
141
123
145
141
111
137
141
146
167
156
155
183
198
189
177
174
182
180
181
185
178
182
181
193
188
166
178
184
196
182
199
202
202
221
212
198
202
219
222
201
194
188
179
195
195
138
139
155
170
158
119
126
138
122
161
148
98
104
124
107
87
88
106
85
100
114
124
141
146
119
98
68
87
65
47
70
70
47
63
71
22
20
42
41
20
39
71
51
42
60
79
57
56
89
81
98
92
91
92
84
115
107
115
131
121
127
149
174
133
130
152
160
159
167
178
157
159
181
159
150
134
159
172
188
172
146
161
168
159
142
147
164
159
147
135
138
152
133
120
135
112
116
166
125
136
147
119
132
118
138
134
138
130
112
126
113
118
110
85
105
126
140
147
118
120
109
125
129
103
119
145
114
102
105
120
134
120
114
112
92
104
138
143
132
132
129
116
124
136
148
129
109
127
125
127
136
126
123
142
150
138
106
120
111
122
120
107
98
130
143
132
127
129
116
138
170
138
117
141
166
148
127
128
155
154
154
150
120
130
182
174
145
159
136
112
135
138
141
160
138
135
117
118
136
132
135
153
142
115
128
124
112
115
135
107
125
153
185
201
181
173
157
130
117
116
106
88
98
108
86
119
112
109
106
76
84
103
111
124
113
106
102
125
117
98
119
107
100
105
71
100
113
102
117
105
125
128
118
137
142
133
124
121
116
139
157
143
145
133
160
154
126
112
143
143
116
139
138
113
118
151
139
116
108
115
104
86
111
92
100
116
104
98
120
128
122
134
113
117
118
112
127
121
110
110
121
110
89
120
102
90
120
118
128
131
148
140
128
135
130
141
147
130
144
134
112
140
141
132
131
135
147
137
151
166
154
141
160
153
138
156
140
145
144
130
143
141
123
125
139
121
133
168
131
119
121
103
113
130
120
120
138
153
146
113
150
154
129
106
135
113
115
158
128
121
136
139
128
159
133
166
156
149
144
141
138
150
138
112
127
144
155
156
135
118
115
141
155
134
112
115
111
98
105
109
101
119
143
153
162
156
164
146
129
112
88
108
113
104
118
86
98
110
92
88
89
93
109
79
103
90
112
122
105
114
119
104
107
108
96
85
122
116
85
124
149
144
136
143
161
141
119
128
128
153
159
162
129
145
176
185
147
135
148
151
137
139
146
145
143
140
130
127
136
152
122
103
100
97
121
121
109
133
133
99
110
118
127
138
128
121
113
114
135
140
127
98
115
114
107
97
88
107
97
114
131
117
128
146
123
109
108
118
145
112
111
151
104
109
116
113
139
125
123
107
115
149
146
139
152
157
129
123
155
152
113
129
131
141
129
132
146
138
153
138
149
131
105
129
105
116
142
135
140
142
144
172
152
138
142
138
136
119
112
163
124
120
144
124
126
173
141
123
134
151
147
164
135
117
135
135
132
125
142
148
110
120
134
129
134
127
124
117
112
103
100
123
110
130
151
136
149
164
159
158
133
107
121
133
136
118
95
118
118
94
92
80
80
89
73
76
91
113
125
108
108
102
124
128
94
81
76
87
130
106
84
106
123
133
138
148
132
126
139
129
122
141
164
157
146
174
174
175
171
138
149
154
155
138
146
174
159
127
135
146
147
150
125
94
105
121
162
144
93
112
139
109
107
102
114
121
121
123
120
126
133
126
127
98
109
125
104
86
92
112
112
123
137
123
126
115
126
136
125
132
124
129
118
109
141
138
103
110
126
118
116
139
133
131
143
162
159
126
134
137
126
104
114
135
132
130
151
152
128
145
152
152
131
121
133
111
108
118
139
132
121
150
170
143
142
132
136
115
105
122
110
144
152
137
123
120
127
140
141
123
107
155
160
128
134
130
123
131
129
137
125
133
128
119
111
120
152
136
112
133
112
110
107
104
102
120
128
152
135
149
164
135
152
163
134
140
141
131
136
142
137
144
97
83
95
81
75
98
94
98
129
143
123
119
137
114
106
96
82
76
107
110
97
105
124
115
125
137
129
148
139
115
129
133
126
145
133
141
179
172
156
158
142
150
129
150
161
140
166
173
134
124
134
149
141
135
128
127
137
122
126
123
109
113
106
114
131
123
112
114
119
119
133
134
123
123
114
121
127
107
89
117
107
91
96
129
120
109
137
141
105
123
123
114
133
122
111
141
124
107
110
118
106
125
125
127
143
150
157
143
134
131
120
107
128
137
130
143
149
154
154
147
136
152
137
130
132
121
122
131
105
103
136
140
156
157
131
145
148
117
120
131
125
129
153
140
122
117
133
133
148
126
122
153
141
126
132
119
146
151
138
134
138
131
129
99
115
131
150
151
110
121
116
112
135
130
110
124
133
116
136
161
158
160
159
144
142
140
122
124
133
117
129
153
106
70
93
97
74
93
113
97
119
145
130
134
128
112
104
94
65
90
116
89
109
136
111
110
153
109
130
116
121
130
118
135
138
119
142
154
169
181
163
150
141
141
142
143
157
141
146
162
166
135
154
138
118
135
151
138
118
126
135
117
119
124
126
132
118
102
100
124
123
140
143
103
111
139
144
112
136
122
94
93
98
91
105
123
126
126
126
126
132
120
99
97
122
127
126
148
124
111
116
109
93
123
131
121
142
153
124
134
154
122
92
98
123
124
131
140
148
144
146
141
145
144
115
139
139
107
119
147
115
74
120
146
133
155
156
134
129
132
127
113
115
120
144
146
158
138
127
145
127
125
140
141
150
135
130
132
153
154
162
177
123
117
121
124
114
137
159
132
116
131
140
130
119
116
103
101
106
124
113
122
148
160
133
147
150
135
122
117
115
127
131
145
141
107
92
95
99
74
89
115
93
131
153
138
130
129
129
95
73
91
76
117
108
111
113
125
128
132
143
108
114
128
120
127
120
119
139
174
159
141
163
169
153
144
142
128
111
151
151
130
150
167
153
159
147
154
141
127
117
119
142
124
136
149
135
113
102
110
99
107
135
122
117
117
122
137
137
132
120
101
101
100
104
110
100
107
122
122
137
113
133
146
109
96
115
127
108
127
152
118
117
135
113
84
121
144
116
119
166
154
124
137
131
98
126
135
115
140
146
140
137
139
147
144
148
135
108
121
128
133
121
98
110
132
133
131
134
132
125
147
134
103
110
135
149
125
118
146
137
138
152
137
119
126
142
150
149
149
147
145
137
146
147
115
131
130
128
145
132
110
135
134
156
122
121
139
107
96
117
103
112
119
148
146
139
160
160
143
130
122
119
132
131
130
147
132
106
121
99
93
77
106
108
105
133
159
143
125
132
119
86
77
75
93
104
115
100
102
113
133
134
114
106
97
104
125
126
124
122
143
157
164
147
139
145
134
155
144
136
143
131
129
141
139
154
164
165
132
151
144
110
130
151
154
129
135
126
127
134
120
116
114
120
130
114
104
112
123
131
130
132
120
112
108
101
96
104
126
110
99
119
114
128
141
122
94
108
122
121
117
126
131
142
149
130
120
116
91
139
126
123
152
132
126
132
126
110
103
116
134
123
124
144
158
165
145
136
120
112
139
133
148
131
115
124
136
138
132
121
131
109
143
146
131
118
130
114
111
149
138
123
145
143
121
114
128
122
149
151
135
144
145
130
150
147
121
120
137
130
140
130
123
131
130
136
144
143
119
132
125
102
114
112
107
115
143
149
135
150
144
133
139
140
138
138
137
137
134
134
113
101
96
91
117
109
103
118
135
120
118
117
110
106
106
96
92
104
104
92
101
121
115
102
115
117
112
106
115
117
107
136
158
145
141
132
144
149
156
146
135
155
153
131
147
145
145
143
158
155
137
137
152
155
137
131
141
140
126
125
119
117
125
120
109
105
100
107
113
110
118
133
130
126
124
104
93
107
111
100
120
129
113
122
119
127
128
120
125
126
130
135
139
144
136
117
119
115
118
115
112
131
132
132
133
134
146
128
122
125
110
130
138
122
135
138
121
129
135
127
129
136
134
128
121
133
144
141
119
120
127
131
138
144
139
132
125
117
124
124
123
128
124
130
136
137
140
136
130
120
125
133
131
138
149
141
137
131
125
127
123
117
109
111
128
130
126
115
117
126
138
128
121
124
124
138
141
124
127
144
149
147
148
159
164
156
137
126
132
137
134
118
114
121
126
133
128
122
121
120
117
109
103
110
122
121
115
113
114
116
108
94
86
93
101
108
112
103
99
102
100
101
104
107
108
108
122
134
141
150
153
148
146
147
135
131
148
152
161
164
155
154
147
146
140
122
117
127
132
138
141
143
146
150
146
134
130
123
116
115
115
116
123
125
128
125
120
121
120
114
112
111
113
117
117
127
125
121
129
120
110
113
119
115
115
111
107
112
120
124
119
115
119
130
130
120
119
118
121
128
132
129
127
133
137
137
138
137
138
138
136
139
137
135
138
138
140
135
132
129
129
135
135
134
130
127
135
144
139
132
125
125
125
127
125
123
123
125
122
119
119
120
119
118
116
120
127
132
130
128
128
129
128
125
123
121
124
123
126
127
128
129
132
133
129
128
130
132
133
131
132
138
147
147
147
149
146
146
147
143
134
135
133
135
139
138
137
137
135
134
134
131
126
123
119
119
120
123
120
120
122
124
119
118
118
115
113
112
108
105
109
114
115
116
117
116
116
118
121
119
118
122
120
123
127
125
124
122
121
122
122
121
123
123
121
124
127
123
124
126
125
122
121
124
125
123
127
131
130
131
130
129
129
130
131
129
132
132
133
131
130
129
130
127
124
126
128
131
133
129
128
129
128
129
128
129
127
129
129
129
131
134
133
130
129
132
134
130
129
129
129
128
128
127
126
128
130
130
130
133
137
136
135
132
130
131
130
129
131
131
132
132
129
131
131
134
134
131
131
130
130
132
130
128
131
131
129
128
126
127
126
125
124
123
122
121
121
123
121
123
126
125
121
122
125
122
119
122
124
122
125
127
124
124
124
120
119
122
123
122
122
125
127
129
131
132
132
132
133
133
134
136
134
130
134
136
134
136
136
133
132
132
132
132
130
128
129
128
126
126
128
125
125
128
131
129
130
129
129
128
127
125
123
123
123
123
122
123
124
126
124
122
124
124
126
127
124
124
122
122
122
123
121
121
124
124
121
123
122
120
121
121
120
122
127
127
126
126
126
122
124
123
123
126
128
129
130
132
130
132
130
125
129
131
132
133
132
130
131
135
133
132
131
132
129
131
131
129
132
129
130
132
133
133
133
133
131
132
136
132
130
132
129
128
127
125
124
126
127
126
127
130
129
130
130
129
130
132
130
129
130
128
126
125
124
126
128
128
126
127
126
126
127
126
122
124
127
130
129
129
130
128
126
129
127
125
128
127
127
127
128
130
129
128
127
127
126
127
127
125
125
127
128
128
128
127
125
124
125
125
124
124
126
125
125
126
126
127
127
125
125
127
127
127
125
126
126
127
129
127
129
129
129
132
131
131
132
133
132
130
129
130
131
129
127
129
130
128
131
130
128
131
128
127
130
127
127
128
125
124
125
126
129
127
126
125
125
126
126
123
123
123
124
122
123
125
124
125
124
124
124
123
123
123
126
126
126
125
128
127
126
128
124
124
124
126
124
128
126
126
129
130
129
128
129
127
127
127
127
129
130
130
131
131
131
129
129
128
131
133
130
131
133
133
134
132
135
133
135
133
133
133
134
133
134
134
132
130
132
131
131
129
130
128
131
131
127
132
128
129
129
129
127
126
124
124
124
125
125
124
125
123
121
121
120
121
121
123
121
123
122
123
124
124
124
123
122
121
122
124
125
125
126
125
126
127
126
126
126
125
124
128
127
127
129
126
128
127
130
127
127
129
127
128
127
127
129
129
127
130
129
130
132
129
129
128
130
130
130
130
130
131
131
131
129
131
131
132
130
131
130
130
130
131
130
130
129
130
128
128
128
129
129
128
128
128
128
129
129
127
126
127
126
126
126
127
127
126
126
127
127
127
125
125
125
124
127
126
124
124
125
124
125
124
126
123
126
125
125
126
124
125
125
125
126
126
124
126
124
125
125
125
124
125
124
126
126
126
127
126
127
127
126
127
126
129
127
127
130
129
130
131
131
130
129
131
130
130
131
131
132
130
129
132
132
131
130
131
130
130
131
131
130
129
130
129
130
130
128
128
129
129
129
129
130
129
128
126
127
127
126
126
127
124
125
126
125
125
124
124
124
123
122
124
123
124
123
123
123
125
123
123
125
124
124
124
124
124
126
124
126
126
126
126
126
125
126
126
126
127
128
128
127
130
129
127
128
128
129
128
128
129
130
129
130
131
130
130
130
130
131
131
130
131
129
129
128
128
129
130
130
129
130
130
130
130
128
128
128
127
127
129
126
126
127
127
126
126
127
126
127
126
126
125
124
126
125
126
126
124
125
126
126
126
125
123
124
125
125
123
125
125
124
125
125
125
125
126
125
126
125
127
126
126
126
127
127
127
127
126
126
127
127
126
128
128
129
129
129
130
129
128
129
128
128
129
128
128
129
128
129
130
129
129
129
129
129
130
130
129
129
128
128
128
128
127
128
128
128
129
128
127
127
128
127
126
126
127
126
126
127
127
127
127
127
127
125
126
127
126
125
128
125
125
127
126
125
125
125
126
125
125
125
125
126
125
125
125
125
125
125
125
125
125
126
126
126
126
126
125
127
126
127
126
126
125
126
126
126
126
126
127
128
128
129
128
128
128
128
128
127
128
128
129
129
130
129
128
129
129
127
129
130
130
129
130
130
129
128
128
127
128
128
129
129
129
127
127
128
128
126
128
126
127
127
126
126
127
125
126
127
126
125
125
126
125
126
125
124
124
125
126
126
126
126
125
125
126
125
126
125
126
127
127
127
126
125
126
125
124
125
125
126
127
126
128
128
126
127
127
126
125
126
126
126
127
127
128
128
128
129
128
129
129
128
128
128
128
129
129
128
127
128
128
128
129
128
128
128
129
129
128
128
127
127
128
127
126
127
128
127
127
127
127
127
127
128
128
126
127
126
126
126
127
127
127
126
127
127
126
127
126
125
126
126
126
127
127
125
127
127
126
125
125
125
126
127
128
126
126
127
127
125
125
125
125
126
126
126
127
126
127
128
128
127
127
128
127
126
127
127
127
127
127
128
128
128
128
128
127
128
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
127
127
128
128
126
127
128
127
127
127
127
127
128
128
128
127
127
126
126
126
126
126
127
126
127
127
128
126
127
127
126
126
126
126
126
126
127
127
126
127
127
125
127
126
126
127
128
127
128
127
128
128
126
127
126
126
127
128
126
127
128
128
128
128
127
127
127
128
127
127
127
127
128
128
129
128
128
129
128
128
126
126
127
128
127
128
127
128
127
127
128
127
127
127
127
127
127
128
128
127
127
126
127
125
127
127
126
128
129
128
128
126
126
127
126
127
127
127
127
127
127
126
127
126
127
127
127
127
126
127
127
126
127
126
126
127
127
126
126
126
126
126
126
126
127
126
128
127
127
126
127
126
126
126
126
127
128
128
128
128
128
128
127
127
126
126
128
128
128
128
129
129
128
128
128
128
127
128
128
128
128
129
128
128
128
128
127
128
128
128
128
128
128
128
128
129
128
127
127
127
128
128
127
127
127
127
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
126
126
126
125
126
126
126
127
127
127
127
127
126
126
126
126
126
126
126
127
127
127
127
127
126
127
127
126
127
127
127
129
128
128
128
128
128
128
127
127
126
127
127
128
128
129
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
127
128
128
127
127
127
127
128
128
128
127
127
127
127
126
127
127
127
127
127
126
126
127
127
126
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
126
127
127
127
128
128
127
127
127
128
128
127
127
128
128
128
128
127
128
127
127
128
127
128
129
129
128
129
129
128
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
128
127
128
128
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
128
127
127
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
127
127
128
128
128
127
128
127
128
128
128
127
128
128
128
127
128
128
129
129
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
126
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
126
127
128
127
127
127
127
127
128
128
127
128
127
127
127
127
128
129
128
128
128
129
128
128
128
128
127
128
127
127
128
128
128
128
129
129
129
129
127
127
127
127
127
128
128
127
128
129
129
128
128
127
127
127
126
126
127
127
127
128
128
127
127
127
127
126
126
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
128
128
127
127
128
129
128
127
127
127
126
126
127
126
127
128
128
127
128
128
128
128
128
126
126
127
127
126
127
127
127
127
128
127
127
127
126
127
127
126
127
127
127
127
128
127
126
127
127
127
126
127
127
127
128
128
128
128
128
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
126
127
127
127
128
128
129
128
128
127
126
127
127
127
127
127
127
128
127
128
127
127
127
127
126
126
127
127
127
128
127
127
127
127
126
126
126
127
128
128
128
128
127
127
128
126
126
127
127
127
128
127
127
127
128
128
127
126
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
129
128
127
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
128
127
127
127
128
127
128
128
128
127
127
128
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
128
127
127
127
126
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
126
127
128
128
128
129
128
128
128
128
127
127
126
126
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
127
127
127
127
126
127
127
127
127
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
126
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
126
127
127
126
126
127
127
127
127
127
127
126
127
127
126
127
127
126
126
127
126
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
128
127
127
128
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
127
128
127
127
127
127
127
126
127
127
127
126
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
128
128
127
127
128
127
127
128
127
126
128
128
127
127
127
127
127
128
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
127
127
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
126
126
127
127
127
127
127
127
127
127
127
127
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
127
128
128
128
127
128
127
127
128
127
127
128
127
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
126
127
127
127
127
128
127
127
127
127
128
128
127
127
127
128
127
128
128
128
127
127
127
128
127
127
128
128
128
127
128
128
127
127
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
128
128
127
128
128
127
128
128
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
128
127
127
128
128
128
128
127
127
127
128
128
127
128
127
127
127
127
127
127
128
128
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
128
127
126
128
127
127
126
128
126
127
128
128
128
127
128
128
128
128
128
128
128
129
128
127
127
127
128
128
127
126
127
128
126
128
127
126
75
91
127
140
152
162
211
128
216
130
170
116
105
92
94
88
90
100
43
21
74
71
97
155
129
164
180
201
166
111
119
215
170
100
140
135
216
107
132
107
181
105
166
156
131
157
166
124
127
82
130
140
120
74
140
109
101
66
76
94
106
110
87
117
94
113
108
75
48
62
106
107
134
130
153
159
174
191
171
171
182
201
201
216
181
148
179
188
161
141
153
186
170
113
114
98
95
103
104
106
80
83
89
77
66
64
81
86
95
94
93
86
64
94
118
129
103
100
153
163
164
171
159
159
164
161
174
174
187
176
179
168
150
112
117
119
143
138
138
158
140
99
88
103
96
77
74
78
57
72
81
99
69
37
77
75
105
119
114
127
145
149
159
163
155
153
175
171
183
162
189
196
188
188
196
146
142
170
147
159
153
140
124
78
71
108
94
92
83
107
104
95
108
105
91
96
88
85
109
133
141
107
116
123
121
119
125
104
103
124
141
144
145
148
151
193
177
189
143
174
163
135
161
135
140
124
146
148
159
178
146
143
133
122
92
101
79
92
96
92
72
80
73
79
103
67
92
73
125
147
152
185
167
132
162
152
140
123
134
122
137
161
172
161
150
112
134
110
134
120
123
98
114
123
129
132
106
132
107
122
128
146
132
135
120
118
135
132
141
128
118
117
118
131
115
110
88
99
118
116
109
126
124
134
140
129
151
145
142
156
173
143
159
147
137
139
130
141
125
108
116
121
120
128
111
118
104
107
89
108
79
83
67
104
121
113
108
112
115
141
155
143
159
156
150
124
165
153
167
178
160
157
142
151
155
158
165
124
136
119
122
122
114
110
106
121
108
108
115
80
96
85
120
151
134
109
113
100
131
124
97
116
118
130
106
125
145
131
115
136
128
142
153
126
145
166
125
158
138
139
140
132
147
140
138
162
150
153
136
138
120
106
128
112
101
106
91
87
94
98
67
96
89
88
102
115
113
104
105
119
125
128
139
128
156
141
142
124
158
157
146
160
160
169
167
157
187
165
173
161
162
145
143
158
136
139
125
102
126
90
115
108
122
111
97
97
91
96
87
100
84
77
65
78
89
93
99
104
105
124
138
138
156
153
161
156
140
155
171
154
178
159
161
160
166
163
157
141
149
167
141
145
122
134
118
119
127
123
100
112
97
111
104
109
105
78
97
99
97
106
90
97
96
116
89
116
105
109
107
110
114
108
129
144
124
140
155
141
153
165
148
150
150
151
172
166
151
172
159
160
145
169
146
159
137
125
130
114
117
108
119
103
103
101
106
100
99
94
105
96
92
96
99
107
116
107
120
113
118
135
129
124
153
160
149
162
143
150
158
148
146
156
147
147
126
154
149
144
130
124
118
127
126
117
113
114
110
109
122
129
123
125
136
128
118
131
116
126
113
131
118
124
123
121
109
123
145
114
137
114
123
124
123
122
121
131
150
116
143
142
152
139
145
146
142
140
122
122
123
117
117
124
129
114
116
119
111
126
114
110
102
97
118
112
119
115
126
123
122
151
130
139
144
148
152
138
153
144
147
138
137
141
127
138
120
128
121
121
126
120
128
122
122
116
109
130
125
120
124
113
119
122
118
125
113
114
121
121
121
124
112
118
121
124
126
124
137
131
131
133
133
135
142
143
145
148
140
146
151
148
150
136
134
136
134
129
132
121
112
119
108
117
110
111
111
110
118
111
114
114
119
106
109
113
124
120
122
126
137
133
128
132
135
141
133
135
133
135
135
137
140
132
133
130
133
131
135
128
128
127
127
125
124
118
128
114
121
121
126
125
119
124
118
127
128
136
131
125
123
120
129
125
128
121
125
127
130
123
133
132
132
131
141
135
145
141
139
146
143
132
137
138
131
132
123
124
124
128
125
128
129
114
119
117
119
109
110
114
111
114
119
114
112
113
114
110
127
117
137
127
136
143
142
150
141
148
144
153
151
141
135
143
132
137
137
119
112
132
136
130
129
112
117
139
127
119
103
131
134
123
105
127
117
120
120
118
108
122
118
134
121
114
123
134
115
126
123
129
130
127
132
132
133
137
138
138
144
145
143
132
136
135
132
131
118
116
122
120
125
116
120
112
117
116
121
133
122
112
114
117
120
115
126
127
129
139
132
137
136
132
133
142
142
137
137
133
128
127
134
131
134
130
133
133
128
132
139
129
123
124
123
119
122
125
110
116
114
116
113
116
116
123
123
126
122
126
119
124
113
114
126
134
133
131
132
133
141
138
140
133
137
136
140
136
135
131
129
121
125
126
127
130
125
133
127
131
125
125
125
130
119
119
121
114
114
130
122
120
121
120
121
125
126
137
134
123
122
125
120
117
127
126
120
127
130
129
141
135
139
136
135
140
145
133
130
132
130
129
126
119
119
124
127
122
116
125
124
136
127
126
134
125
127
126
128
123
123
113
114
119
125
124
128
130
128
132
135
124
131
131
131
131
127
122
133
126
132
121
118
126
119
130
134
133
131
135
142
134
138
133
128
124
122
129
131
121
124
123
118
118
126
123
125
118
119
125
116
128
118
117
114
118
121
124
128
131
124
126
133
131
137
135
128
129
137
134
130
130
125
133
128
129
127
125
138
121
129
128
136
123
131
132
127
128
127
124
126
126
127
138
127
131
128
128
131
127
130
128
134
130
137
128
137
120
128
125
123
127
126
119
121
121
119
120
124
127
116
123
118
120
129
123
132
125
129
122
132
135
130
131
134
135
133
134
134
127
133
130
128
130
132
134
125
119
121
131
127
129
121
123
127
125
121
120
124
126
117
122
129
128
126
119
131
128
123
135
124
123
126
131
129
128
121
130
125
122
121
127
125
127
130
132
128
127
130
128
132
136
131
129
134
124
131
127
126
124
122
125
127
121
123
128
126
127
126
126
128
123
123
129
126
124
125
124
128
130
123
126
125
130
125
135
133
128
134
129
139
132
126
137
131
127
126
124
133
127
128
127
132
122
126
134
134
127
129
127
127
128
128
127
125
122
127
130
131
129
128
125
131
124
129
126
123
123
126
123
127
124
121
127
126
130
124
123
122
120
121
128
124
124
120
124
124
123
129
127
129
129
126
135
131
128
126
135
131
127
134
129
134
131
139
134
128
133
132
128
128
128
123
128
123
125
126
119
119
126
118
123
121
122
116
119
115
121
120
119
125
126
126
125
121
126
130
123
136
129
132
133
136
137
131
136
133
131
138
132
136
131
131
134
137
130
136
130
132
124
127
128
128
129
131
125
125
122
132
119
118
123
122
123
124
119
121
125
122
128
127
129
123
125
123
124
120
123
127
121
127
124
133
130
132
133
129
135
134
133
125
135
134
132
136
132
130
128
130
126
125
133
126
125
124
126
123
125
120
124
127
125
123
127
124
120
120
124
127
125
124
120
124
125
127
128
125
125
122
127
127
127
123
133
129
131
126
128
129
130
127
129
132
133
132
126
132
129
131
129
133
129
128
129
127
129
131
127
130
122
128
127
130
128
127
123
128
124
127
126
123
125
125
125
128
128
126
127
129
129
128
130
128
127
128
129
128
129
129
127
134
134
127
132
130
132
131
130
131
130
126
127
129
126
125
122
124
125
124
124
122
127
126
125
120
124
124
126
125
122
123
124
126
128
126
126
124
127
128
129
127
130
129
130
130
128
131
128
128
130
130
127
131
126
126
129
127
127
125
128
126
127
120
126
124
123
125
123
125
122
122
129
126
130
122
128
126
127
126
128
126
126
126
125
128
128
130
126
131
128
132
127
128
129
130
129
129
131
130
128
132
131
133
131
129
132
131
132
128
132
129
131
127
130
127
128
126
128
123
124
128
125
124
124
124
122
126
127
126
124
128
127
128
126
131
126
127
127
128
128
127
130
126
128
126
128
130
128
126
127
127
129
123
127
128
129
128
127
129
129
128
128
129
127
128
131
127
130
127
130
128
126
125
127
122
124
126
124
127
127
126
125
126
126
128
128
126
128
128
130
126
129
127
128
127
128
130
127
124
125
122
126
122
122
121
124
123
124
126
125
128
125
128
130
128
130
129
130
130
130
130
131
129
130
128
130
131
128
129
129
130
127
127
128
130
128
126
126
130
129
126
128
128
128
130
128
128
130
128
125
128
127
126
127
125
125
127
125
127
125
127
126
127
128
128
127
125
127
129
129
128
129
129
129
129
130
129
129
131
133
128
131
130
127
126
126
125
129
126
123
124
126
124
125
123
126
124
124
124
124
126
124
125
125
125
125
124
127
125
126
129
127
128
126
129
127
130
128
131
126
129
128
124
127
127
127
126
128
126
127
130
126
127
128
126
127
128
126
127
126
124
127
124
126
124
126
125
129
127
126
127
131
126
129
127
127
129
128
128
129
129
129
131
131
131
129
131
131
129
130
129
128
128
126
130
127
131
125
127
128
129
127
128
128
128
129
127
127
126
126
127
124
126
128
128
126
127
128
128
128
128
127
124
127
128
126
126
126
127
128
128
128
128
125
130
130
131
128
124
124
127
127
124
125
126
125
124
125
126
124
127
126
128
126
130
124
128
126
126
125
126
127
127
126
128
128
127
128
125
127
127
129
129
127
127
124
126
126
127
129
127
129
127
128
129
127
127
125
127
128
127
129
128
128
130
126
128
128
128
126
129
129
127
129
128
129
127
127
129
128
128
126
127
128
126
127
126
127
127
131
129
125
128
126
128
129
129
129
129
128
127
130
126
127
126
126
127
128
126
124
128
126
128
127
130
128
127
127
128
129
130
128
130
131
127
129
127
131
127
127
130
127
130
127
126
124
127
126
125
124
122
124
122
123
124
126
124
126
126
128
127
128
127
127
127
127
127
125
129
126
126
126
127
126
126
129
129
129
127
126
128
129
127
127
126
125
126
126
126
126
127
127
125
127
127
130
126
129
127
129
127
128
127
128
129
127
129
127
129
124
127
126
127
131
130
127
126
130
126
129
128
129
125
127
129
127
127
129
129
130
129
130
130
128
130
130
130
129
127
128
127
128
124
127
126
124
128
125
126
128
126
127
128
128
129
129
128
127
126
127
126
126
129
126
127
126
128
125
127
128
126
125
125
125
126
126
125
127
125
128
127
129
127
129
129
128
128
126
129
126
126
126
125
125
124
126
125
126
127
126
127
124
128
126
127
126
128
125
129
129
126
129
127
128
128
129
127
128
129
127
129
128
128
127
129
127
129
126
126
126
126
124
127
128
126
127
126
128
126
126
128
126
127
127
128
127
128
128
128
127
129
129
126
127
127
131
128
129
128
127
130
129
128
128
127
128
128
128
128
129
128
129
127
128
128
130
128
129
127
127
127
127
128
126
126
125
127
127
126
126
125
127
127
128
127
126
127
127
130
128
130
129
127
128
129
127
127
129
128
128
128
123
124
128
128
124
129
125
123
127
126
125
125
127
127
127
124
126
126
127
126
128
126
128
129
129
128
127
126
128
128
129
128
126
125
127
123
127
126
127
127
127
128
127
127
127
127
129
127
127
129
127
126
128
125
126
128
125
128
128
129
127
130
128
128
127
126
122
124
127
127
129
126
128
128
129
126
128
127
129
129
130
125
130
128
128
128
126
128
129
128
127
126
125
127
130
128
130
128
126
129
126
127
126
128
126
130
126
125
126
126
127
130
132
129
129
128
129
128
125
124
124
125
126
127
124
127
124
126
126
127
124
125
127
128
130
126
129
128
128
128
128
127
127
129
129
128
128
127
126
126
125
126
126
128
130
128
127
127
128
126
126
126
125
126
127
129
127
126
131
128
127
126
128
127
126
125
125
126
125
127
130
126
126
125
126
128
129
128
128
128
128
128
130
128
128
130
130
134
129
120
130
135
130
126
114
127
135
112
124
135
118
132
145
124
121
139
131
129
129
112
125
121
128
142
121
115
122
125
128
135
128
119
122
116
136
135
116
132
119
111
131
141
130
125
123
120
130
137
140
120
128
120
126
140
138
121
129
119
117
136
143
119
128
124
119
140
134
114
136
133
113
136
138
112
144
122
118
140
120
125
125
118
140
126
111
131
132
131
136
113
129
135
128
121
128
129
129
136
123
114
130
138
121
134
123
125
136
128
130
140
117
129
128
131
127
127
134
123
118
124
125
123
132
133
121
124
138
124
124
129
129
119
124
127
126
129
125
122
123
123
129
119
127
128
119
135
134
130
123
129
123
99
130
126
118
148
135
133
131
117
136
123
143
135
120
122
112
120
116
123
142
113
111
129
121
104
124
141
128
126
129
126
131
137
136
114
110
138
121
124
144
142
130
125
130
130
144
137
130
144
138
146
139
120
137
151
134
128
135
130
118
125
131
125
131
126
133
127
110
119
126
127
120
105
116
124
120
128
120
139
130
133
130
100
103
118
127
126
109
129
118
142
147
141
129
112
121
137
146
137
109
128
151
139
140
125
121
129
134
145
139
108
123
145
137
134
107
112
125
126
129
104
126
141
125
120
104
85
113
113
131
125
108
141
146
116
121
143
131
96
115
130
129
159
149
122
136
143
111
112
150
147
121
120
133
144
148
107
142
133
140
138
125
131
122
110
129
125
115
130
127
127
127
115
135
136
121
140
140
118
125
117
123
119
121
126
125
123
116
136
120
101
137
108
120
130
125
134
127
142
148
128
127
138
127
106
115
139
137
137
144
110
106
131
132
120
120
138
136
129
136
126
140
140
146
114
102
127
155
119
116
142
137
110
140
132
118
126
129
160
150
110
144
126
98
126
125
125
122
109
125
135
130
138
127
132
122
132
145
129
98
99
126
121
102
112
119
91
120
133
131
124
131
127
130
126
110
100
115
122
136
131
116
127
144
171
150
110
101
124
142
143
133
129
150
164
163
143
113
122
88
109
128
103
121
151
143
123
132
133
107
116
123
104
93
107
147
132
109
109
109
119
127
136
142
132
129
138
141
149
163
152
118
123
146
147
134
108
124
156
161
160
125
107
143
146
127
158
104
140
180
127
104
130
113
102
112
151
134
108
156
154
106
117
135
133
121
130
98
90
127
133
129
99
100
115
138
139
132
112
104
126
135
125
112
105
113
123
123
115
77
101
106
103
127
119
111
119
120
109
137
162
143
135
165
144
142
139
98
89
106
122
130
135
144
157
146
147
99
99
116
116
117
97
85
117
133
113
108
123
129
137
160
153
103
133
158
154
160
153
139
158
146
109
98
124
143
148
179
145
133
137
145
162
127
134
140
150
162
138
132
106
120
128
141
133
124
111
152
153
130
129
128
125
143
110
83
84
127
132
107
94
102
117
142
124
112
121
133
126
140
109
100
114
139
111
135
118
81
120
150
127
123
120
123
96
131
140
117
143
177
156
155
142
133
98
102
113
116
105
121
138
164
148
128
127
93
103
126
114
93
108
152
103
116
130
99
124
137
133
135
147
121
143
152
137
142
149
114
134
146
135
107
112
121
144
141
166
128
135
118
114
140
117
126
163
134
131
132
142
106
118
140
111
127
135
133
147
158
130
147
148
121
115
126
97
89
124
143
101
110
123
127
140
144
130
124
118
118
121
130
115
117
145
111
130
106
90
123
113
129
109
115
131
94
122
127
117
142
158
157
142
142
135
109
108
116
130
134
138
145
145
140
116
93
119
115
115
143
97
108
137
136
120
90
120
125
132
136
130
130
141
163
152
125
143
125
149
152
136
113
111
125
163
147
159
121
134
138
101
117
133
117
163
146
141
139
133
107
128
127
111
127
128
139
159
142
141
151
127
117
122
109
94
111
124
139
104
103
136
135
140
133
119
123
111
116
131
129
103
120
150
117
126
108
97
117
130
128
121
111
120
121
116
120
136
149
159
152
142
143
115
105
98
126
129
121
148
143
136
135
119
93
117
117
101
131
131
91
130
129
123
111
111
128
119
135
135
135
139
142
140
128
131
117
139
152
142
116
114
119
155
152
157
136
136
126
110
132
123
123
153
152
164
142
124
127
133
124
122
153
123
112
165
157
142
149
138
115
111
120
90
105
115
133
104
91
132
128
139
135
105
126
112
103
129
111
96
116
135
126
124
123
110
102
118
118
145
127
118
137
111
117
139
143
152
147
155
144
135
122
105
105
124
139
127
127
137
140
142
104
116
121
109
106
146
108
79
142
142
115
114
107
118
116
137
129
145
141
122
149
134
115
128
144
149
139
122
117
125
154
158
163
143
144
121
98
125
132
129
140
147
154
133
128
122
111
110
141
150
109
122
170
147
134
137
115
92
122
104
104
121
138
101
100
139
127
130
141
111
125
114
123
123
115
101
113
128
121
113
141
110
115
101
132
148
117
141
114
89
129
142
143
145
159
153
138
146
121
97
116
131
136
136
130
143
140
123
115
130
107
104
122
135
104
106
156
129
115
116
108
116
120
130
132
142
134
127
142
132
119
126
132
144
133
122
118
128
143
159
164
144
144
111
133
131
140
143
142
151
133
133
120
100
110
140
149
109
125
140
166
166
136
134
109
102
124
110
111
102
130
107
107
134
123
123
148
128
117
122
127
121
108
117
107
109
123
125
137
120
102
101
141
129
145
129
118
94
137
139
129
137
153
135
137
142
127
82
108
136
130
141
124
137
141
104
131
122
111
102
126
130
118
112
138
130
117
129
107
112
128
134
136
138
136
138
124
136
122
122
125
147
156
117
111
145
134
148
159
150
143
116
118
139
121
137
153
150
129
143
142
113
110
120
135
131
131
134
130
151
164
137
116
105
112
118
128
100
102
128
118
124
127
122
134
137
128
121
130
120
120
125
113
92
115
139
122
136
126
102
131
131
110
142
119
105
110
137
124
117
139
151
134
131
145
120
83
121
136
133
145
127
138
137
118
142
119
95
111
129
121
118
119
132
129
137
100
95
125
123
145
147
132
134
123
134
129
113
130
143
124
124
130
133
123
163
163
146
149
114
108
121
127
139
141
150
141
154
144
121
109
106
114
139
138
128
131
162
162
139
125
120
107
124
146
100
95
109
142
122
119
146
121
135
144
121
136
114
120
122
108
114
119
127
140
137
124
108
123
124
121
119
102
96
102
115
121
121
131
147
137
132
133
94
115
139
129
166
153
128
137
119
112
136
113
103
112
139
140
108
119
135
120
134
113
90
121
122
140
155
146
120
145
141
116
117
128
131
126
127
124
140
136
157
165
133
144
130
102
109
130
123
139
153
133
148
156
114
117
103
109
126
148
129
125
142
170
156
149
123
104
118
146
118
85
80
128
129
127
129
120
133
146
113
124
117
113
131
129
122
115
131
151
141
134
104
119
131
111
128
97
102
116
124
149
140
129
148
146
123
125
132
86
106
136
117
148
148
131
135
120
114
127
117
115
122
121
129
110
122
134
137
142
125
95
129
130
125
147
160
140
137
138
124
106
128
116
99
101
128
121
133
163
149
120
143
130
97
100
125
111
129
161
135
140
153
141
124
107
119
130
142
134
134
144
154
157
152
130
120
122
137
107
86
92
121
130
118
127
144
146
117
93
117
119
138
138
104
113
134
157
152
144
111
117
141
119
117
113
107
118
110
119
133
123
132
155
123
124
114
88
121
127
130
151
148
142
139
130
126
131
128
126
126
137
126
116
130
131
146
132
123
105
118
139
133
146
148
143
136
142
138
103
123
115
99
124
130
117
133
169
149
121
137
116
82
109
119
105
129
143
118
152
129
98
106
105
116
147
146
144
151
156
141
139
123
106
126
129
98
92
99
95
114
112
114
127
131
147
115
103
145
143
137
159
143
109
135
163
146
155
143
118
136
152
130
135
133
132
108
116
143
120
127
152
125
110
127
110
100
124
121
140
135
131
139
121
125
118
132
129
108
128
114
106
121
113
126
142
126
106
104
125
125
128
131
131
124
140
131
110
128
91
106
150
121
117
148
161
151
148
133
99
117
138
139
125
147
165
144
126
125
120
92
96
142
132
117
135
135
116
129
139
129
91
105
132
120
88
93
104
103
126
125
111
116
143
137
151
129
130
169
167
139
117
120
151
158
165
133
139
148
135
155
148
141
116
128
134
129
142
145
134
143
116
131
139
95
115
132
138
118
132
151
132
127
124
132
133
91
121
120
90
105
112
113
138
115
105
107
115
118
130
118
129
132
121
137
106
93
104
119
137
115
103
98
142
161
140
134
118
106
128
148
144
118
141
149
142
128
129
113
103
102
132
124
123
118
146
135
105
120
128
95
120
137
98
98
107
92
107
120
100
125
135
159
147
137
124
135
172
166
115
119
136
152
174
154
128
143
140
140
153
169
117
134
152
113
142
153
135
143
154
137
137
137
113
125
143
121
139
164
143
146
148
120
139
111
106
115
105
98
100
120
131
96
104
120
103
109
117
113
121
121
146
129
101
85
100
111
123
118
106
115
145
156
147
131
130
124
138
119
129
135
136
135
149
140
126
122
118
89
118
128
119
149
140
139
140
113
115
123
132
117
96
106
89
102
113
110
89
125
141
156
130
120
120
128
174
152
99
124
146
145
170
145
120
145
141
137
155
147
130
145
159
124
125
140
139
148
138
122
140
114
118
138
131
140
157
152
152
140
136
105
127
118
99
110
111
111
97
118
117
85
99
125
113
119
112
125
115
107
152
156
88
99
107
108
124
126
109
106
129
147
147
132
123
133
137
122
134
135
124
133
157
131
111
127
117
97
126
123
129
150
131
135
140
128
130
153
119
97
117
101
90
99
110
92
103
134
152
157
139
121
112
139
170
156
106
127
152
137
162
159
137
132
134
142
153
131
139
141
152
139
121
146
140
131
147
131
112
131
150
121
113
143
146
144
145
153
127
128
129
140
121
103
117
130
109
103
108
100
107
110
122
137
97
111
127
102
123
153
137
103
121
109
100
132
124
90
103
127
137
141
128
140
130
130
138
147
117
118
148
149
119
111
131
133
108
102
125
123
121
151
136
120
136
151
138
119
113
101
105
95
98
87
130
125
145
152
131
116
111
151
138
133
131
130
156
141
138
165
150
121
135
142
140
136
156
140
140
139
126
148
130
125
143
128
129
152
136
121
121
146
133
134
138
144
130
141
135
127
107
93
128
128
102
118
92
107
126
104
124
125
98
104
130
119
124
143
130
119
111
113
119
116
112
102
107
117
136
142
133
134
116
133
151
136
124
135
138
149
140
118
142
130
103
105
118
125
132
143
134
134
150
151
121
109
99
114
103
101
99
93
127
119
140
148
108
114
127
133
132
120
136
134
157
137
116
149
141
130
142
117
135
147
149
148
137
145
136
138
138
135
135
140
144
142
125
137
128
138
133
139
143
133
145
151
141
135
113
90
115
136
107
108
95
114
127
134
114
100
114
110
115
118
129
126
126
121
104
117
126
115
98
118
106
101
127
138
141
121
106
146
140
128
133
134
124
137
155
132
122
148
130
125
104
128
132
112
148
142
134
145
146
131
110
99
116
120
87
86
116
115
113
145
136
109
126
138
120
113
118
132
151
155
126
135
150
131
150
143
105
114
155
162
138
128
155
138
137
137
128
125
141
151
128
129
145
129
134
123
144
138
125
150
158
149
136
114
112
108
136
120
108
103
106
143
132
118
114
112
106
123
135
118
126
120
120
123
128
128
103
99
125
100
119
141
133
118
100
144
142
108
126
128
115
134
156
131
124
135
145
129
98
119
127
111
145
150
132
133
154
134
94
97
124
123
101
100
117
121
131
146
119
112
133
128
118
124
123
122
145
158
126
135
140
121
146
149
121
114
154
157
142
124
150
148
135
106
123
130
136
152
124
123
144
133
144
122
